Methods and apparatus for content caching in a video network

ABSTRACT

Methods and apparatus for selectively caching (and de-caching) video content in network so as to reduce content transformation requirements and also cache storage requirements. In one embodiment, a content caching controller associated with a content server differentiates content requests based on content attributes such as the requested codec format (e.g., MPEG or Windows Media), resolution, bitrate, and/or encryption type or security environment. If the content requested by a user is not available with the requested attribute(s), the content server transfers to content to the user by first transforming it. The content server also speculatively caches the transformed content locally, so that a future request for the same content with the same attributes can be filled by transferring without the intermediate transformation step. The controller allows the network operator to optimize use of available storage and transcoding resources.

PRIORITY AND RELATED APPLICATIONS

This application is a divisional of and claims priority to U.S. patentapplication Ser. No. 14/053,486 filed Oct. 14, 2013 and entitled“METHODS AND APPARATUS FOR CONTENT CACHING IN A VIDEO NETWORK”, which isa divisional of U.S. patent application Ser. No. 11/904,375 filed Sep.26, 2007 of the same title, now U.S. Pat. No. 8,561,116, each of whichis incorporated herein by reference in its entirety. This application isrelated to co-owned U.S. patent application Ser. No. 11/904,408 filedSep. 26, 2007 and entitled “METHODS AND APPARATUS FOR DEVICECAPABILITIES DISCOVERY AND UTILIZATION WITHIN A CONTENT-BASED NETWORK”,which is patented as U.S. Pat. No. 8,458,753 on Jun. 4, 2013, which is acontinuation-in-part (CIP) of U.S. patent application Ser. No.11/363,577 entitled “METHODS AND APPARATUS FOR SELECTING DIGITALCODING/DECODING TECHNOLOGY FOR PROGRAMMING AND DATA DELIVERY” filed Feb.27, 2006, which is patented as U.S. Pat. No. 7,916,755 on Mar. 29, 2011,each of the foregoing is incorporated herein by reference in itsentirety. This application is also related to co-pending U.S. patentapplication Ser. No. 11/726,095 entitled “METHOD AND APPARATUS FORCONTENT DELIVERY AND REPLACEMENT IN A NETWORK” filed Mar. 20, 2007, andincorporated by reference herein in its entirety. This application isalso related to U.S. patent application Ser. No. 11/363,578 entitled“METHODS AND APPARATUS FOR SELECTING DIGITAL ACCESS TECHNOLOGY FORPROGRAMMING AND DATA DELIVERY”, patented as U.S. Pat. No. 8,170,065 onMay 1, 2012, and U.S. patent application Ser. No. 11/364,147 entitled“METHODS AND APPARATUS FOR SELECTING DIGITAL INTERFACE TECHNOLOGY FORPROGRAMMING AND DATA DELIVERY”, patented as U.S. Pat. No. 8,718,100 onMay 6, 2014, both filed Feb. 27, 2006, and both incorporated herein byreference in their entirety.

COPYRIGHT

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND OF THE INVENTION

1. Field of Invention

The present invention relates generally to the field of contentdistribution across a network. More particularly, the present inventionis related in one exemplary aspect to the selective caching of videocontent within a content-based and data network having a set ofelectronic devices with at least some heterogeneous capabilities so asto inter alia maximize network efficiency.

2. Description of Related Technology

Digital Television

Digital TV (DTV) is a technology which utilizes digitized and compresseddata formats (e.g., MPEG) for content transmission, as compared toearlier analog “uncompressed” approaches (e.g., NTSC). The DTV contentmay be distributed across any number of different types of bearer mediaor networks with sufficient bandwidth, including HFC, satellite,wireless, or terrestrial.

DTV broadcasts are generally more efficient and more flexible thananalog methods. For example, the bandwidth required to transmit videoprogramming using DTV is less than the bandwidth required using analogmethods, assuming similar quality of video (and audio). Thus, more videoprogramming can generally be transmitted with a given bandwidth when DTVmethods are employed.

A broad variety of electronic devices have recently been developed toutilize and leverage emerging DTV delivery capabilities. The devicesoften have very different capabilities, and may include e.g., digitalset-top boxes (DSTBs), personal computers (PCs) or laptops, personaldigital assistants (PDAs), hand-held computers, “smartphones”, personalmedia devices (PMDs), etc.

These devices can be operatively coupled to, and placed in communicationwith, other devices (whether of the same or different configuration), orother network entities such as a central information source or servervia various channels. The different capabilities of these electronicdevices may result from different purposes, designs, different userconfiguration, being mobile versus fixed in nature, cost/features, etc.,and may include differing encryption support capabilities, conditionalaccess profiles, memory and/or processing capability, video or audiocodecs, network interfaces, and so forth. Many of these features,including notably the coding/decoding (codec), video resolution,conditional access (CA), and network interface capabilities, arecritical to the proper selection, delivery, and playing of content atthe end-user device.

The traditional method of digital encoding or compression is thewell-known MPEG-2 format. More advanced codecs include H.264 (also knownas MPEG-4) and VC-1. H.264 is a high compression digital video codecstandard written by the ITU-T Video Coding Experts Group (VCEG) togetherwith the ISO/IEC Moving Picture Experts Group (MPEG) as the product of acollective partnership effort known as the Joint Video Team (JVT). TheITU-T H.264 standard and the ISO/IEC MPEG-4 Part-10 standard (formally,ISO/IEC 14496-10) are highly similar, and the technology is also knownas AVC, for Advanced Video Coding. DTV methods of program distributionare also generally more flexible than analog methods. For example, thetype of compression may be modified or updated. The compression can beimproved when new techniques become available, or they may be customizedor optimized for certain applications and attributes such as picturequality, data integrity or transmission delay.

Digital rendering also lends itself to transcoding of content. As usedherein, the term “transcoding” refers generally to the process ofchanging content from one encoding to another. This may be accomplishedfor example by decoding the encoded content, and then re-encoding thisinto the target format. Transcoding can also accomplish the encoding ofcontent to a lower bitrate without changing video formats, a processthat is known as transrating.

Compression artifacts are typically cumulative; therefore, transcodingbetween lossy codecs causes a progressive loss of quality with eachsuccessive iteration. For this reason, transcoding between lossy codecsis generally discouraged unless unavoidable. It is better to obtain acopy of the content in a lossless format, and then encode directly fromthe lossless source file to the lossy formats required, thereby causingthe minimum degradation.

Transcoding is used in many areas of content adaptation; however, it iscommonly employed in the area of mobile phones or devices. In suchmobile applications, transcoding is essential due to the diversity ofmobile devices. This diversity effectively requires an intermediatestate of content adaptation, so as to ensure that the source contentwill adequately present on the target device (e.g., mobile phone).

On-Demand (OD) Content Distribution

In the recent years, content distribution network operators have startedmoving away from broadcast distribution model; where users had to choosefrom programs delivered on the network, to on-demand distribution model;where a program is delivered to a user based on his selection.

A video-on-demand (VOD) system is one example of on-demand contentdistribution. In a typical video-on-demand system, a user can browse andselect from a number of multimedia programs available on a VOD server.When a user selects a program to view, the content is suitably deliveredfrom a VOD server (or multiple VOD servers) to a customer premisesequipment (CPE) such as the user's set-top box (STB).

Depending on the type of content made available and rate structure forviewing, a particular VOD service could be called “subscriptionvideo-on-demand (SVOD)” that gives customers on-demand access to thecontent for a flat monthly fee, “free video-on-demand (FVOD)” that givescustomers free on-demand access to some content, “movies on-demand”where VOD content consists of movies only, and so forth. Many of theseservices, although referred to by names different than VOD, still sharemany of the same basic attributes including storage, network and decodertechnologies.

Just as different varieties of VOD service offerings have evolved overtime, several different network architectures have also evolved fordeploying these services. These architectures range from fullycentralized (e.g., VOD servers at a central location) to fullydistributed (e.g., multiple copies of content distributed on VOD serversvery close to customer premises), as well as various other networkarchitectures there between. Since most cable television networks todayconsist of optical fiber towards the “core” of the network which areconnected to coaxial cable networks towards the “edge”, VOD transmissionnetwork architectures also consist of a mixture of optical fiber andcoaxial cable portions.

The CPE for VOD often consists of a digital cable set-top box (DSTB)that provides the functions of receiving cable signals by tuning to theappropriate RF channel, processing the received signal and outputtingVOD signals for viewing on a display unit. Such a digital set-top boxalso typically hosts a VOD application that enables user interaction fornavigation and selection of VOD menu.

In a typical on-demand distribution network, the attributes of thecontent thus delivered will depend on several factors such as theavailable network bandwidth, the user's service tier and the videodecoding capability of the user's STB.

Emerging Challenges

Expanded on-demand content storage and delivery is giving rise to a newproblem; i.e., deciding whether to cache one or more content versionseach with certain unique attributes (such as differing video resolution,bitrate and codec requirements) in order to make multiple versions ofcontent immediately available, or rather to transform the content “onthe fly” from a source format into a format suitable for a requestinguser's target device. At one end of the spectrum, a great number ofdifferent encoding/bitrate/encryption variants of each program could bepre-stored. This approach is however very inefficient from a storageconsumption standpoint, although will obviate most if not alltranscoding or transrating (thereby providing a cost savings since fewtranscoders/transraters will be needed), and would conceivably alsoreduce latency associated with servicing each request. At the other endof the spectrum, one could store only one version of a particularcontent element, and transrate/transcode for most every instance; thiswould increase cost and latency, but eliminate storage issues.Regardless of where on that spectrum one operates, however, every singlerequest for content is processed under prior art approaches as if uniqueor sui generis. Stated differently, failure to detect and utilizeduplications of requests for specific content andencoding/bitrate/encryption combinations increases the MSO's burden inservicing so many ostensibly unique requests.

Caching price points depend largely on recording technology such as harddrives (HDDs) and while more storage capacity is being addedcontinually, demands for this storage space are also increasing due tofunctions such as personal and network DVR (pDVR, nDVR). Also,constraints on network devices such as transcoders and transraters mayexist due to, e.g., cost, limitations on rack space, availability ofother support equipment, latency, etc.

Moreover, in many instances, the range of decoding, bitrate, andencryption capabilities found within devices used in conjunction withbroadband networks is increasing significantly with time. Not everydevice on the network will be known about ahead of time (including itsattributes such as decoding capability, bitrate capability, and DRM),thereby often frustrating attempts at transforming content in advance.Such ad hoc content requests must therefore often be processed (i.e.,the content transformed) “on-the-fly” in order to support such a largerange of devices and capabilities.

Accordingly, it would be most desirable to implement methods andapparatus that allow the operator of a managed network to performtrade-off between server storage capacity and other network equipment(e.g., transcoding capability).

SUMMARY OF THE INVENTION

The foregoing needs are satisfied by the present invention, whichdiscloses, inter alia, methods and apparatus for managing the caching,transcoding, transrating, and/or transcrypting of content delivered overa network.

In a first aspect of the invention, a method of operating a networkhaving a plurality of client devices associated therewith is disclosed.In one embodiment, the method comprises: receiving a request for acontent element rendered in a first format; determining whether therequest comprises a first request for the content element rendered inthe first format within a period of time; if the determining indicatesthat the request comprises the first request within the period of time,then transforming a source content element into the content elementrendered in the first format; and if the determining indicates that therequest is not the first request for the content element rendered in thefirst format within the period of time, then checking a cache for thecontent element rendered in the first format.

In one variant, if the content element rendered in the first format isnot stored within the cache, the method comprises transforming thesource content element into the content element rendered in the firstformat, and caching the transformed content element.

In another variant, if the content element rendered in the first formatis stored within the cache, the method comprises serving the requestfrom the cache.

In yet another variant, the network comprises a cable network, and atleast some of the client devices comprise Internet Protocol (IP) enableddevices.

In still a further variant, the network comprises a cable network, andthe transforming comprises transforming from a second encoding format toan encoding of the first format.

Alternatively, the transforming comprises transforming from a firstbitrate to a second bitrate.

In a second aspect of the invention, network apparatus for use is acable network is disclosed. In one embodiment, the apparatus comprises:a server adapted to serve at least video content elements; a storagedevice adapted to store a plurality of video content elements; atransformation entity adapted to transform ones of the video contentelements from a first form to a second form; and a controlleroperatively communicating with server, storage device, andtransformation entity. The controller is adapted to evaluate requestsfor the video content elements to determine whether the ones of thecontent elements in the second form should be stored in the storagedevice or not.

In one variant, the transformation entity is adapted to perform at leastone of: (i) trancryption; (ii) transcoding; and (iii) transrating.

In another variant, the controller comprises a computer program, and theevaluation of the requests comprises determining whether a requested oneof the video content elements has been previously requested at apredetermined frequency or higher.

In a further variant, the evaluation of the requests comprisesdetermining whether a requested one of the video content elements hasbeen previously stored in the storage device in the second form.

In yet another variant, the apparatus further comprises a databaseadapted to store information relating to attributes of the video contentelements stored on the storage device.

In a third aspect of the invention, a method of operating acontent-based network is disclosed. In one embodiment, the network has acontent storage device and a plurality of client devices associatedtherewith, and the method comprises: selectively and temporarily storinga plurality of content elements within the storage device; selectivelyremoving ones of the content elements from the storage device when oneor more criteria for removal are met, the criteria relating at least inpart to requests for the content elements from the plurality of clientdevices.

In one variant, the one or more criteria comprises the frequency ofrequest for the ones of the content elements falling below apredetermined threshold.

In another variant, the network comprises a cable television network,and the plurality of devices have a plurality of different decoding andbitrate capabilities, the selective storing of the plurality of contentelements being based at least in part on plurality of different decodingand bitrate capabilities.

In yet another variant, the selectively removing comprises removing theones of the content elements according to a priority scheme orhierarchy.

In still a further variant, the selective removal is performed only whenstorage space restrictions exist which necessitate the removal.

In a fourth aspect of the invention, a method of operating a networkhaving a plurality of substantially heterogeneous client devicesassociated therewith is disclosed. In one embodiment, the methodcomprises: making available a plurality of different content elements;receiving a request for one of the content elements in a particularformat; evaluating the request to determine whether the request can beserviced by using a cached version of the requested content elementrendered in the particular format; and where the request cannot beserviced using a cached version, transforming another version of therequested one of the content element into a version rendered in theparticular format, and delivering the transformed version.

In one variant, the network comprises a cable television network, andthe particular format comprises a particular video encoding type, andthe transforming comprises transcoding.

In another variant, the method further comprises speculatively cachingthe transformed version based at least in part on a prediction of futuredemand for the transformed version.

In yet another variant, the method further comprises: receiving a secondrequest for the one of the content elements in the particular format;caching the transformed version based at least in part on the secondrequest.

In another embodiment, the method comprises: making available aplurality of different content elements; receiving a request for one ofthe content elements in a particular format; evaluating the request todetermine whether the request is best serviced by either (i) using acached version of the requested content element rendered in theparticular format, or (ii) transforming another version of the requestedcontent element into the particular format; and based on the evaluating,performing at least one of delivering the cached version of therequested content element in the particular format, or transforming theanother version into a version rendered in the particular format anddelivering the transformed version.

In a fifth aspect of the invention, network server apparatus for use isa cable network is disclosed. In one embodiment, the server apparatuscomprises: a server adapted to receive video content in a first formatfrom a content source, and serve the video content to one or more usersof the network; a controller operatively communicating with the server,the controller adapted to evaluate requests for the video content fromthe users to determine whether to: serve an individual one of thecontent requests from a storage device associated with server; causetransformation of the content from the first format to a second formatto produce transformed content, and serve the one request using thetransformed content, and not cache the transformed content; or causetransformation of the content from the first format to a second formatto produce transformed content, and serve the one request using thetransformed content, and cache the transformed content for use inserving a subsequent request for the video content in the second format.

In one variant, the server comprises a video on demand (VOD) server, thecontroller comprises a computer program, and the evaluation of therequests comprises determining whether the video content has beenpreviously requested at a predetermined frequency or higher.

In another variant, the evaluation of the requests comprises determiningwhether the video content has been previously stored in a storage devicein the second format.

In a sixth aspect of the invention, a method of operating a networkhaving a plurality of client devices associated therewith is disclosed.In one embodiment, the method comprises: receiving a request for one ofa plurality of content elements rendered in a particular format, thecontent elements being made available for access by the client devices;evaluating the request to determine whether the request can be servicedby using a cached version of the requested content element rendered inthe particular format; where the request cannot be serviced using acached version, further evaluating one of a plurality of transformationoptions for the requested content element; and selecting one of thetransformation options based at least in part on the further evaluating.

In a seventh aspect of the invention, a method of doing business isdisclosed. In one embodiment, the method comprises acceptingconsideration in exchange for adjusting the priority of certain content(e.g., advertisements or promotions) within a content cachingarchitecture. In another embodiment, the method comprises acceptingconsideration for offering a greater variety of versions of a givencontent element within the aforementioned caching architecture.

In an eighth aspect of the invention, a computer readable apparatushaving a storage medium is disclosed. In one variant, the mediumcontains a computer program adapted to provide content caching andde-caching controller functions within an MSO network.

In a ninth aspect of the invention, a network system is disclosed. Inone embodiment, the network system comprises an HFC cable network havinga headend and a plurality of hub sites, and is adapted to deliver IPcommunications via its transport, such as via a DOCSIS cable modem orin-band QAM. Various types of user devices may be coupled to the systemincluding CPE, PCs, WiFi-enabled devices, IP TV devices, mobile devices,and so forth, and content within the network system is selectivelycached and de-cached based on one or more criteria such as frequency ofuse.

In a tenth aspect of the invention a network server apparatus for use ina content delivery network is disclosed. In one embodiment, theapparatus includes a server configured to (i) receive video content in afirst format from a content source, (ii) receive a plurality of requestsfor individuals of the plurality of content in at least one secondformat from individual ones of a plurality of users of the network, and(iii) serve the video content in the at least one second format to theindividual ones of the plurality of users of the network. The apparatusfurther includes a controller in operative communication with theserver, the controller configured to: (i) receive requests for the videocontent from the individual ones of the plurality of users, (ii) utilizethe received requests to determine a predicted pattern of behavior withrespect to the video content rendered in the at least one second format,and (iii) determine time periods based at least in part on the predictedpattern of behavior with respect to the video content, a first one ofthe time periods including a time within which the video content iscached, and a second one of the time periods including a time withinwhich the video content is not cached, the first and the second ones ofthe time periods configured not to overlap.

In an eleventh aspect of the invention, a computer readable apparatusincluding a storage medium is configured to store a plurality ofinstructions thereon, the plurality of instructions configured to, whenexecuted: (i) receive a plurality of content in a first format from acontent source, (ii) receive a plurality of requests for individual onesof the plurality of content in at least one second format fromindividual ones of a plurality of users, (iii) evaluate the plurality ofrequests to generate predictions of future demand for the individualones of the plurality of content in at least one second format, (iv)when a prediction for at least one of the individual ones of theplurality of content reaches a predetermined threshold, cache the atleast one of the individual ones of the plurality of content, and (v)provide the at least one of the individual ones of the plurality ofcontent in the at least one second format to the individual ones of theplurality of users.

In a twelfth aspect of the invention, a method of providing cachedcontent in a network is disclosed. In one embodiment, the methodincludes receiving content in a first format from a content source,receiving requests for the content in at least one second format,evaluating the received requests to generate a prediction of futuredemand for the content in at least one second format, and when theprediction for the content in at least one second format reaches apredetermined threshold, caching the content in the at least one secondformat.

In a thirteenth aspect of the invention, an apparatus configured tocache content in a network is disclosed. In one embodiment, theapparatus includes a plurality of instructions which are configured to,when executed, cause the apparatus to receive a plurality of content ina first format from a content source, receive a plurality of requestsfor individual ones of a plurality of content rendered in at least onesecond format from individual ones of a plurality of users, utilize theplurality of requests to determine a predicted pattern of behavior withrespect to the individual ones of the plurality of content rendered inthe at least one second format, and cache at least one of the individualones of the plurality of content in the at least one second format,based at least in part on the predicted pattern of behavior.

In a fourteenth aspect of the disclosure, a computer-readable apparatuswithin a content delivery network comprising a content storage deviceand at least one client device is disclosed. In one embodiment, theapparatus comprises a plurality of instructions configured to, whenexecuted, selectively and temporarily store a plurality of contentelements within the content storage device, and remove selected ones ofthe plurality of contents from the content storage device when one ormore criteria for removal are met, the one or more criteria for removalbeing based at least in part on one or more requests for the pluralityof content elements.

These and other aspects of the invention shall become apparent whenconsidered in light of the disclosure provided herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other features and advantages of the present invention arehereinafter described in the following detailed description ofillustrative embodiments to be read in conjunction with the accompanyingdrawings and figures, wherein like reference numerals are used toidentify the same or similar system parts and/or method steps, and inwhich:

FIG. 1 is a functional block diagram illustrating an exemplary HFC cablenetwork configuration useful with the present invention.

FIG. 1A is a functional block diagram illustrating one exemplary HFCcable network headend configuration useful with the present invention.

FIG. 1B is a functional block diagram illustrating one exemplary localservice node configuration useful with the present invention.

FIG. 1C is a functional block diagram illustrating one exemplarybroadcast switched architecture (BSA) network useful with the presentinvention.

FIG. 2 is a functional block diagram illustrating a generalized contentcaching architecture according to one embodiment of the presentinvention.

FIG. 2A is a functional block diagram illustrating one exemplaryimplementation of the generalized architecture of FIG. 2.

FIG. 3 is a logical flow diagram illustrating one embodiment of thegeneralized method of operating a content based network includingcontent caching.

FIG. 3A is a logical flow diagram illustrating one implementation of thegeneralized methodology of FIG. 3.

FIG. 3B is a logical flow diagram illustrating another embodiment of thecontent caching methodology according to the invention.

FIG. 3C is a logical flow diagram illustrating one embodiment of thecontent de-caching methodology according to the invention.

FIG. 3D is a logical flow diagram illustrating one embodiment of themethodology for determining CPE or client device capabilities accordingto the invention.

FIG. 4A is a block diagram illustrating a first exemplary embodiment ofa network software architecture according to the present invention.

FIG. 4B is a block diagram illustrating a second exemplary embodiment ofa network software architecture according to the present invention.

FIG. 4C is a block diagram illustrating a third exemplary embodiment ofa network software architecture according to the present invention.

FIG. 4D is a block diagram illustrating a fourth exemplary embodiment ofa network software architecture according to the present invention.

FIG. 5 is a functional block diagram illustrating an exemplaryembodiment of a network device with content caching functionalityaccording to the invention.

FIG. 6 is a functional block diagram illustrating an exemplaryembodiment of CPE adapted to support network content cachingfunctionality.

DETAILED DESCRIPTION OF THE INVENTION

Reference is now made to the drawings wherein like numerals refer tolike parts throughout.

As used herein, the term “application” refers generally to a unit ofexecutable software that implements a certain functionality or theme.The themes of applications vary broadly across any number of disciplinesand functions (such as on-demand content management, e-commercetransactions, brokerage transactions, home entertainment, calculatoretc.), and one application may have more than one theme. The unit ofexecutable software generally runs in a predetermined environment; forexample, the unit could comprise a downloadable Java Xlet™ that runswithin the JavaTV™ environment.

As used herein, the terms “client device” and “end user device” include,but are not limited to, set-top boxes (e.g., DSTBs), personal computers(PCs), and minicomputers, whether desktop, laptop, or otherwise, andmobile devices such as handheld computers, PDAs, personal media devices(PMDs), such as for example an iPod™, or Motorola ROKR, and smartphonessuch as the Apple iPhone™.

As used herein, the term “codec” refers to an video, audio, or otherdata coding and/or decoding algorithm, process or apparatus including,without limitation, those of the MPEG (e.g., MPEG-1, MPEG-2, MPEG-4,etc.), Real (RealVideo, etc.), AC-3 (audio), DiVX, XViD/ViDX, WindowsMedia Video (e.g., WMV 7, 8, or 9), ATI Video codec, AVC/H.264, or VC-1(SMPTE standard 421M) families.

As used herein, the term “computer program” or “software” is meant toinclude any sequence or human or machine cognizable steps which performa function. Such program may be rendered in virtually any programminglanguage or environment including, for example, C/C++, Fortran, COBOL,PASCAL, assembly language, markup languages (e.g., HTML, SGML, XML,VoXML), and the like, as well as object-oriented environments such asthe Common Object Request Broker Architecture (CORBA), Java™ (includingJ2ME, Java Beans, etc.), Binary Runtime Environment (e.g., BREW), andthe like.

As used herein, the term “conditional access” refers to any accesscontrol scheme, whether implemented in hardware, software, or firmware(or combinations thereof), including without limitation members of the“PowerKey™” family, NDS (including VideoGuard, mVideoGuard, etc.), DVB,and Motorola/General Instrument DigiCipher® family (DigiCipher II,MediaCipher, etc.). These can be implemented using, for example,CA-specific hardware/software elements embedded in the device, theso-called “CableCARD™” plug-in security module access technology, adownloadable CA system (DCAS), or otherwise.

Similarly, the terms “Consumer Premises Equipment (CPE)” and “hostdevice” refer to any type of electronic equipment located within aconsumer's or user's premises and connected to a network. The term “hostdevice” refers generally to a terminal device that has access to digitaltelevision content via a satellite, cable, or terrestrial network. Thehost device functionality may be integrated into a digital television(DTV) set. The term “consumer premises equipment” (CPE) includes suchelectronic equipment such as set-top boxes, televisions, Digital VideoRecorders (DVR), gateway storage devices (Furnace), and ITV PersonalComputers.

As used herein, the term “database” refers generally to one or moretangible or virtual data storage locations, which may or may not bephysically co-located with each other or other system components.

As used herein, the term “display” means any type of device adapted todisplay information, including without limitation: CRTs, LCDs, TFTs,plasma displays, LEDs, incandescent and fluorescent devices. Displaydevices may also include less dynamic devices such as, for example,printers, e-ink devices, and the like.

As used herein, the term “DOCSIS” refers to any of the existing orplanned variants of the Data Over Cable Services InterfaceSpecification, including for example DOCSIS versions 1.0, 1.1, 2.0 and3.0. DOCSIS (version 1.0) is a standard and protocol for internet accessusing a “digital” cable network. DOCSIS 1.1 is interoperable with DOCSIS1.0, and has data rate and latency guarantees (VoIP), as well asimproved security compared to DOCSIS 1.0. DOCSIS 2.0 is interoperablewith 1.0 and 1.1, yet provides a wider upstream band (6.4 MHz), as wellas new modulation formats including TDMA and CDMA. It also providessymmetric services (30 Mbps upstream).

As used herein, the term “DVI” (digital video interface) refersgenerally to any type of interface (e.g., hardware and/or software)adapted to provide interface and/or conversion between different formatsor domains, including without limitation interfaces compliant with theDigital Display Working Group (DDWG) DVI specification (e.g., DVI-A,DVI-D, and DVI-I). For example, using a DVI connector and port, adigital signal sent to an analog monitor is converted into an analogsignal; if the monitor is digital, such as a flat panel display, noconversion is necessary. A DVI output is an option in OpenCablecompliant hardware that provides a high-definition TV (HDTV) outputwhich includes copy protection.

As used herein, the term “DVR” (digital video recorder) refers generallyto any type or recording mechanism and/or software environment wherebycontent sent over a network can be recorded and selectively recalled.Such DVR may be dedicated in nature, or part of a non-dedicated ormulti-function system.

As used herein, the term “headend” refers generally to a networkedsystem controlled by an operator (e.g., an MSO or multiple systemsoperator) that distributes programming to MSO clientele using clientdevices. Such programming may include literally any informationsource/receiver including, inter alia, free-to-air TV channels, pay TVchannels, interactive TV, and the Internet. DSTBs may literally take onany configuration, and can be retail devices meaning that consumers mayor may not obtain their DSTBs from the MSO exclusively. Accordingly, itis anticipated that MSO networks may have client devices from multiplevendors, and these client devices will have widely varying hardwarecapabilities. Multiple regional headends may be in the same or differentcities.

As used herein, the term “integrated circuit (IC)” refers to any type ofdevice having any level of integration (including without limitationULSI, VLSI, and LSI) and irrespective of process or base materials(including, without limitation Si, SiGe, CMOS and GaAs). ICs mayinclude, for example, memory devices (e.g., DRAM, SRAM, DDRAM,EEPROM/Flash, ROM), digital processors, SoC devices, FPGAs, ASICs, ADCs,DACs, transceivers, memory controllers, and other devices, as well asany combinations thereof.

As used herein, the terms “Internet” and “internet” are usedinterchangeably to refer to inter-networks including, withoutlimitation, the Internet.

As used herein, the term “memory” includes any type of integratedcircuit or other storage device adapted for storing digital dataincluding, without limitation, ROM. PROM, EEPROM, DRAM, SDRAM, DDR/2SDRAM, EDO/FPMS, RLDRAM, SRAM, “flash” memory (e.g., NAND/NOR), andPSRAM.

As used herein, the terms “microprocessor” and “digital processor” aremeant generally to include all types of digital processing devicesincluding, without limitation, digital signal processors (DSPs), reducedinstruction set computers (RISC), general-purpose (CISC) processors,microprocessors, gate arrays (e.g., FPGAs), PLDs, reconfigurable computefabrics (RCFs), array processors, secure microprocessors, andapplication-specific integrated circuits (ASICs). Such digitalprocessors may be contained on a single unitary IC die, or distributedacross multiple components.

As used herein, the terms “MSO” or “multiple systems operator” refer toa cable, satellite, or terrestrial network provider havinginfrastructure required to deliver services including programming anddata over those mediums.

As used herein, the terms “network” and “bearer network” refer generallyto any type of telecommunications or data network including, withoutlimitation, hybrid fiber coax (HFC) networks, satellite networks, telconetworks, and data networks (including MANs, WANs, LANs, WLANs,internets, and intranets). Such networks or portions thereof may utilizeany one or more different topologies (e.g., ring, bus, star, loop,etc.), transmission media (e.g., wired/RF cable, RF wireless, millimeterwave, optical, etc.) and/or communications or networking protocols(e.g., SONET, DOCSIS, IEEE Std. 802.3, ATM, X.25, Frame Relay, 3GPP,3GPP2, WAP, SIP, UDP, FTP, RTP/RTCP, H.323, etc.).

As used herein, the terms “network agent” and “network entity” refers toany network entity (whether software, firmware, and/or hardware based)adapted to perform one or more specific purposes. For example, a networkagent or entity may comprise a computer program running in serverbelonging to a network operator, which is in communication with one ormore processes on a CPE or other device.

As used herein, the term “network interface” refers to any signal, data,or software interface with a component, network or process including,without limitation, those of the Firewire (e.g., FW400, FW800, etc.),USB (e.g., USB2), Ethernet (e.g., 10/100, 10/100/1000 (GigabitEthernet), 10-Gig-E, etc.), MoCA, Serial ATA (e.g., SATA, e-SATA,SATAII), Ultra-ATA/DMA, Coaxsys (e.g., TVnet™), radio frequency tuner(e.g., in-band or OOB, cable modem, etc.), WiFi (802.11a,b,g,n), WiMAX(802.16), PAN (802.15), or IrDA families.

As used herein, the term “node” refers without limitation to anylocation, functional entity, or component within a network.

As used herein, the term “QAM” refers to modulation schemes used forsending signals over cable networks. Such modulation scheme might useany constellation level (e.g. QPSK, QAM-16, QAM-64, QAM-256 etc.)depending on details of a cable network. A QAM may also refer to aphysical channel modulated according to the schemes.

As used herein, the term “server” refers to any computerized component,system or entity regardless of form which is adapted to provide data,files, applications, content, or other services to one or more otherdevices or entities on a computer network.

As used herein, the term “service”, “content”, “program” and “stream”are sometimes used synonymously to refer to a sequence of packetizeddata that is provided in what a subscriber may perceive as a service. A“service” (or “content”, or “stream”) in the former, specialized sensemay correspond to different types of services in the latter,non-technical sense. For example, a “service” in the specialized sensemay correspond to, among others, video broadcast, audio-only broadcast,pay-per-view, or video-on-demand. The perceivable content provided onsuch a “service” may be live, pre-recorded, delimited in time,undelimited in time, or of other descriptions. In some cases, a“service” in the specialized sense may correspond to what a subscriberwould perceive as a “channel” in traditional broadcast television.

As used herein, the term “service group” refers to either a group ofservice users (e.g. subscribers) or the resources shared by them in theform of entire cable RF signal, only the RF channels used to receive theservice or otherwise, treated as a single logical unit by the networkfor resource assignment.

As used herein, the term “storage device” refers to without limitationcomputer hard drives, DVR device, memory, RAID devices or arrays,optical media (e.g., CD-ROMs, Laserdiscs, Blu-Ray, etc.), or any otherdevices or media capable of storing content or other information.

As used herein, the terms “user channel” and “program channel” are allgenerally synonymous with the concept of a perceived stream ofinformation. For example, a program/user channel might comprise “Channel3” which carries the content of a given network (e.g., NBC). This is tobe distinguished from a physical channel, which is used to physicallycarry and distribute the content, which may for example comprise one ormore QAMs within a given portion of the RF spectrum of a cable system.

As used herein, the term “user interface” refers to, without limitation,any visual, graphical, tactile, audible, sensory, or other means ofproviding information to and/or receiving information from a user orother entity, such as a GUI.

As used herein, the term “WiFi” refers to, without limitation, any ofthe variants of IEEE-Std. 802.11 or related standards including 802.11a/b/g/n.

As used herein, the term “wireless” means any wireless signal, data,communication, or other interface including without limitation WiFi,Bluetooth, 3G, 4G, HSDPA/HSUPA, TDMA, CDMA (e.g., IS-95A, WCDMA, etc.),FHSS, DSSS, GSM, PAN/802.15, WiMAX (802.16), 802.20, narrowband/FDMA,OFDM, PCS/DCS, analog cellular, CDPD, satellite systems, millimeter waveor microwave systems, acoustic, and infrared (i.e., IrDA).

Overview

In one salient aspect, the present invention discloses methods andapparatus for the “intelligent” caching and de-caching of content withina content-based network using on-demand or other user-specifieddelivery. The present invention finds significant utility with respectto, inter alia, Video-over-IP, IPTV, Video to Mobile devices, and othersimilar applications within a content-based system such as a cabletelevision or satellite network.

Specifically, the present invention addresses the previously describedissues relating to the trade-off between content storage space andtranscoding/transrating/transcrypting efficiencies within the systemthat occur as a result of trying to support a broad range of end-userdevice profiles and capabilities. By evaluating the demand for certaincontent elements and formats within the network, and identifying“duplications” of requests (or alternatively, the “proximity” of onerequest to another in content/encoding/bitrate/encryption space), thecaching controller of the present invention is able to dynamicallybalance caching of multiple versions of a content element (e.g., movie)and the need for “on the fly” transcoding/trasrating/transcryption andassociated assets. In this fashion, greater efficiencies and economiesof scale in operating the network can be realized while simultaneouslysupporting a wide range of devices.

In one exemplary embodiment, the aforementioned caching controlleralgorithms are completely passive; i.e., they operate without any apriori knowledge of the requesting device or their capabilities.

In another embodiment, such knowledge of the capabilities of clientdevices within the network is used to inter alia provide a speculativeor predictive caching capability.

A content caching architecture is disclosed comprising theaforementioned caching controller (e.g., a software process running on aVoD server or Session Resource Manager (SRM)), a cache or storage area,and a cached content database which allows for rapid searching anddetermination of pertinent information for the caching controller (e.g.,content title, encoding format, bitrate and/or encryption support, aswell as the history of requests and optionally deliveries for thatcontent version).

Methods of doing business, and an operational/business “rules engine”are also described.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Exemplary embodiments of the apparatus and methods of the presentinvention are now described in detail. While these exemplary embodimentsare described in the context of the aforementioned hybrid fiber coax(HFC) cable architecture having an multiple systems operator (MSO),digital networking capability, and plurality of client devices/CPE, thegeneral principles and advantages of the invention may be extended toother types of networks and architectures where bandwidth conservationis required or desirable, whether broadband, narrowband, wired orwireless, content or data, or otherwise. Hence, the followingdescription is merely exemplary in nature. For example, the inventionmay be practiced over a fiber-to-the-home (FTTH) or fiber-to-the-curb(FTTC) system or over satellite or millimeter wave-based network havingtwo-way capabilities similar to today's digital cable HFC networks.

It will also be appreciated that while described generally in thecontext of a network providing service to a customer or consumer (i.e.,residential) end user domain, the present invention may be readilyadapted to other types of environments including, e.g.,commercial/enterprise, and government/military applications. Myriadother applications are possible.

It is also noted that while the following discussion is cast primarilyin terms of two service levels (i.e., SD and HD), the methods andapparatus disclosed herein can be extended to other numbers and types ofservice levels. For example, it is foreseeable that yet even higherlevels of definition may be employed in the future (e.g., “ultra-highdefinition” or UHD), thereby allowing intelligent bandwidth conservationbetween three service levels (SD, HD, and UHD). As another option,multiple levels or rates may be present with one of the aforementionedservice levels, such as where the SD level includes levels SD1, SD2, . .. SDn, and/or the HD level similarly includes HD1, HD2, . . . HDn, witheach of these sub-levels having different data rates and/or othercharacteristics.

It is further noted that while described primarily in the context of 6MHz RF channels, the present invention is applicable to literally anyfrequency/bandwidth, such as for example 8 MHz channels. Furthermore, asreferenced above, the invention is in no way limited to traditionalcable system frequencies (i.e., below 1 GHz), and in fact may be usedwith systems that operate above 1 GHz band in center frequency orbandwidth, to include without limitation so-called ultra-widebandsystems. Additionally, the invention is in no way limited to anyparticular modulation type or medium access scheme, and can beimplemented using for example using QAM, orthogonal frequency divisionmultiplexing (OFDM), sigma-delta modulation (SDM), time-divisionmultiplexing (TDM), etc.

Bearer Network Architecture—

FIG. 1 illustrates a typical content-based network configuration withwhich the content caching apparatus and methods of the present inventionmay be used. The various components of the network 100 include (i) oneor more data and application origination points 102; (ii) one or morecontent sources 103, (iii) one or more application distribution servers104; (iv) one or more VOD servers 105, and (v) customer premisesequipment (CPE) 106. The distribution server(s) 104, VOD servers 105 andCPE(s) 106 are connected via a bearer (e.g., HFC) network 101. Asimplified architecture comprising one of each of the aforementionedcomponents 102, 104, 105, 106 is shown in FIG. 1 for ease ofillustration, although it will be recognized that comparablearchitectures with multiple origination points, distribution servers,VOD servers, and/or CPE devices (as well as different networktopologies) may be utilized consistent with the invention. For example,the headend architecture of FIG. 1A (described in greater detail below)may be used.

The data/application origination point 102 comprises any medium thatallows data and/or applications (such as a VOD-based or “Watch TV”application) to be transferred to an application distribution server104. This can include for example a third party data source, applicationvendor website, CD-ROM, external network interface, mass storage device(e.g., RAID system), etc. Such transference may be automatic, initiatedupon the occurrence of one or more specified events (such as the receiptof a request packet or ACK), performed manually, or accomplished in anynumber of other modes readily recognized by those of ordinary skill.

The application distribution server 104 can be a computer system wheresuch applications can enter the network system. Distribution servers arewell known in the networking arts, and accordingly not described furtherherein.

The VOD server 105 comprises a computer system where on-demand (OD)content can be received from one or more of the aforementioned datasources 102 and enter the network system. These servers may generate thecontent locally, or alternatively act as a gateway or intermediary froma distant source. The VOD server 105 includes the Session ResourceManager (SRM) functionality, and contacts the Digital Network ControlSystem (DNCS) for resources. The DNCS responds with negative or positiveresponse to the request, and the VOD server implements the appropriateresource allocation logic, such as for example that described inco-owned U.S. patent application Ser. No. 10/881,979 filed Jun. 29, 2004and entitled “METHOD AND APPARATUS FOR NETWORK BANDWIDTH ALLOCATION”,patented as U.S. Pat. No. 8,843,978 on Sep. 23, 2014, and incorporatedherein by reference in its entirety, although other approaches andconfigurations may be used with equal success.

The CPE 106 includes any equipment in the “customers' premises” (orother locations, whether local or remote to the application distributionserver 104) that can be accessed by a distribution server 104.

Referring now to FIG. 1A, one exemplary embodiment of a headendarchitecture useful with the present invention is described. As shown inFIG. 1A, the headend architecture 150 comprises typical headendcomponents and services including billing module 152, subscribermanagement system (SMS) and CPE configuration management module 154,cable-modem termination system (CMTS) and OOB system 156, as well asLAN(s) 158, 160 placing the various components in data communicationwith one another. It will be appreciated that while a bar or bus LANtopology is illustrated, any number of other arrangements as previouslyreferenced (e.g., ring, star, etc.) may be used consistent with theinvention. It will also be appreciated that the headend configurationdepicted in FIG. 1A is high-level, conceptual architecture and that eachMSO may have multiple headends deployed using custom architectures.

The exemplary architecture 150 of FIG. 1A further includes amultiplexer/encrypter/modulator (MEM) 162 coupled to the HFC network 101adapted to process or condition content for transmission over thenetwork. The distribution servers 164 are coupled to the LAN 160, whichprovides access to the MEM 162 and network 101 via one or more fileservers 170. The VOD servers 105 are coupled to the LAN 160 as well,although other architectures may be employed (such as for example wherethe VOD servers are associated with a core switching device such as an802.3z Gigabit Ethernet device). As previously described, information iscarried across multiple channels. Thus, the headend must be adapted toacquire the information for the carried channels from various sources.Typically, the channels being delivered from the headend 150 to the CPE106 (“downstream”) are multiplexed together in the headend as previouslydescribed, and sent to neighborhood hubs via a variety of interposednetwork components.

It will also be recognized, however, that the multiplexing operation(s)need not necessarily occur at the head-end 150 (e.g., in theaforementioned MEM 162). For example, in one variant, at least a portionof the multiplexing is conducted at a BSA switching node or hub (seediscussion of FIG. 1C provided subsequently herein). As yet anotheralternative, a multi-location or multi-stage approach can be used, suchas that described in co-owned U.S. patent application Ser. No.11/048,334, filed on Feb. 1, 2005 entitled “APPARATUS AND METHODS FORMULTI-STAGE MULTIPLEXING IN A NETWORK”, and patented as U.S. Pat. No.7,602,820 on Oct. 13, 2009, which is incorporated herein by reference inits entirety, which discloses inter alia improved multiplexing apparatusand methods that allow such systems to dynamically compensate forcontent (e.g., advertisements, promotions, or other programs) that isinserted at a downstream network node such as a local hub, as well as“feed back” and “feed forward” mechanisms for transferring informationbetween multiplexing stages.

Content (e.g., audio, video, data, files, etc.) is provided in eachdownstream (in-band) channel associated with the relevant service group.To communicate with the headend or intermediary node (e.g., hub server),the CPE 106 may use the out-of-band (OOB) or DOCSIS channels andassociated protocols. The OCAP 1.0, 2.0, 3.0 (and subsequent)specification provides for exemplary networking protocols bothdownstream and upstream, although the invention is in no way limited tothese approaches.

It will also be recognized that the multiple servers (content orotherwise) can be used, and disposed at two or more different locationsif desired, such as being part of different server “farms”. Thesemultiple servers can be used to feed one service group, or alternativelydifferent service groups. In a simple architecture, a single server isused to feed one or more service groups. In another variant, multipleservers located at the same location are used to feed one or moreservice groups. In yet another variant, multiple servers disposed atdifferent location are used to feed one or more service groups. Oneexemplary multi-server architecture particularly useful with the presentinvention is described in co-owned U.S. patent application Ser. No.09/876,677 filed on Jun. 7, 2001 and entitled “HYBRIDCENTRAL/DISTRIBUTED VOD SYSTEM WITH TIERED CONTENT STRUCTURE”, andpatented as U.S. Pat. No. 7,690,020 on Oct. 30, 2010, which isincorporated herein by reference in its entirety.

Many other permutations of the foregoing system components andcommunication methods may also be used consistent with the presentinvention, as will be recognized by those of ordinary skill in thefield.

“Switched” Networks

FIG. 1C illustrates an exemplary “switched” network architecture alsouseful with the content caching features of the present invention. Whilea so-called “broadcast switched architecture” or BSA network isillustrated in this exemplary embodiment, it will be recognized that thepresent invention is in no way limited to such architectures.

Switching architectures allow improved efficiency of bandwidth use forordinary digital broadcast programs. Ideally, the subscriber will beunaware of any difference between programs delivered using a switchednetwork and ordinary streaming broadcast delivery.

FIG. 1C shows the implementation details of one exemplary embodiment ofthis broadcast switched network architecture. Specifically, the headend150 contains switched broadcast control and media path functions 190,192; these element cooperating to control and feed, respectively,downstream or edge switching devices 194 at the hub site which are usedto selectively switch broadcast streams to various service groups. A BSAserver 196 is also disposed at the hub site, and implements functionsrelated to switching and bandwidth conservation (in conjunction with amanagement entity 198 disposed at the headend). An optical transportring 197 is utilized to distribute the dense wave-division multiplexed(DWDM) optical signals to each hub in an efficient fashion.

Co-owned U.S. patent application Ser. No. 09/956,688 filed Sep. 20, 2001and entitled “TECHNIQUE FOR EFFECTIVELY PROVIDING PROGRAM MATERIAL IN ACABLE TELEVISION SYSTEM”, and patented as U.S. Pat. No. 8,713,623 onApr. 29, 2014, which is incorporated herein by reference in itsentirety, describes one exemplary broadcast switched digitalarchitecture useful with the present invention, although it will berecognized by those of ordinary skill that other approaches andarchitectures may be substituted.

In order for the BSA function to be transparent to the subscriber,channel change latencies are kept to a minimum (e.g., 250 ms or less ascompared to average linear digital broadcast services). Likevideo-on-demand (VOD) systems, BSA programs are streamed to a servicegroup (contrast: switch) only when being viewed. Unlike VOD, manyviewers can view the same stream. Typically, only real-time linearprograms are included in BSA broadcasts. Since there is no storageinvolved, the “VCR” controls (e.g., trick mode functions) common to VODare not available. In this regard, BSA is much simpler that VOD.Commercials or other programming segments cannot be skipped, and programbitrates can be treated as in more conventional systems.

Additionally, a BSA system typically gathers and keep logs or otherrecords of programmer-specific viewership data. For example, the BSAserver gathers logs that are based on the client-server interactions.These logs or records are maintained to allow for well-considered“recapture” of non-viewed program streams (i.e., reclamation ofbandwidth). The server manages bandwidth by removing streams based onthis activity data. In typical practice, unviewed streams will bemarked, but not actually removed until the bandwidth is needed eitherbecause of a client request, or based on external resource demands suchas VOD overflow.

In one exemplary embodiment, the network session manager (BSA manager)logs all channel change events and is aware of the tuning locations ofall tuners, not just those that happen to be viewing BSA programs. Thisprovides highly accurate and complete viewership data based on actualchannel changes as contrasted with extrapolations or other estimationtechniques.

The edge switch 194 (generally located in the distribution hub as shownin FIG. 1C) is flooded with all available programs. This improvestransport efficiency, because a simple unidirectional “drop andcontinue” protocol is performed at each hub location on a given opticaltransport ring 197. The concept of flooding also simplifies thetransport network in that no control system is needed; rather a simple“deliver everything” paradigm is used. This approach also advantageouslymakes this portion of the signal chain more robust, since more complexcontrol systems generally lend themselves to a higher operationalfailure rate.

Because ordinary broadcast programming is supplied using BSA, thetransport network 197 needs to have a high degree of availability. Inthe exemplary embodiment, BSA program transport is supplied through aredundant, spatially diverse counter-rotating Ethernet ring topology,although other topologies may be utilized with success.

In addition to “broadcast” content (e.g., video programming), thesystems of FIGS. 1A and 1C also deliver Internet data services using theInternet protocol (IP), although other protocols and transportmechanisms of the type well known in the digital communication art maybe substituted. One exemplary delivery paradigm comprises deliveringMPEG-based video content, with the video transported to user PCs (orIP-based STBs) over the aforementioned DOCSIS channels comprising MPEG(or other video codec such as H.264 or AVC) over IP over MPEG. That is,the higher layer MPEG- or other encoded content is encapsulated using anIP protocol, which then utilizes an MPEG packetization of the type wellknown in the art for delivery over the RF channels. In this fashion, aparallel delivery mode to the normal broadcast delivery exists; i.e.,delivery of video content both over traditional downstream QAMs to thetuner of the user's STB or other receiver device for viewing on thetelevision, and also as packetized IP data over the DOCSIS QAMs to theuser's PC or other IP-enabled device via the user's cable modem.

Referring again to FIG. 1C, the IP packets associated with Internetservices are received by edge switch 194, and forwarded to the cablemodem termination system (CMTS) 199. The CMTS examines the packets, andforwards packets intended for the local network to the edge switch 194.Other packets are discarded or routed to another component.

The edge switch 194 forwards the packets receive from the CMTS 199 tothe QAM modulator 189, which transmits the packets on one or morephysical (QAM-modulated RF) channels to the CPE. The IP packets aretypically transmitted on RF channels that are different that the RFchannels used for the broadcast video and audio programming, althoughthis is not a requirement. The CPE 106 are each configured to monitorthe particular assigned RF channel (such as via a port or socketID/address, or other such mechanism) for IP packets intended for thesubscriber premises/address that they serve.

Exemplary Caching Architecture—

Referring now to FIGS. 2-2 a, exemplary embodiments of the contentcaching architecture according to the present invention are described.It will be appreciated that while the following embodiments aredescribed in the context of an on-demand (e.g., VoD) delivery paradigm,the invention is in no way so limited. For example, the apparatus andmethods of the invention may be applied to e.g., pay-per-view (PPV)models, delivery of broadcast streams that include inserted content thatis pre-stored (e.g., advertisements or promotions), and so forth.

FIG. 2 illustrates one exemplary embodiment of the generalized contentcaching architecture according to the present invention, in the contextof a cable television network. As shown in FIG. 2, the architecture 200generally comprises a content source 202, content server 204,transformation entity (e.g., transcoder, transrater, transcrypter) 206,and a caching controller 208. The content source 202 provides contentencoded or formatted according to a first scheme or specification, andthe transformation entity 206 selectively transforms that content fromthe first scheme to the second scheme as described subsequently herein.This transformation may occur after the content is “served” by thecontent server 204 as illustrated, during the serving process (e.g., onthe fly), or alternatively before the content is served. Under anyapproach, different schemes for delivery of the transformed content maybe employed; e.g., such as where the content is pre-transformed andstored, or alternatively where the content is transformed in a “just intime” fashion for streaming over the network. Various other approacheswill be recognized by those of ordinary skill in the art.

In one embodiment, the server 204 also comprises the cache or storagespace used to store content, although a separate or stand-alone cachemay also be used, as well as any number of other approaches.

The controller 208 is used to determine and/or apply caching policiesfor the content provided by the source/server, as described in greaterdetail subsequently herein. For example, in one embodiment, the cachingpolicy comprises determining whether a predetermined or variablethreshold for the number of requests for a particular content element(e.g., movie) in a particular format or encoding (e.g., MPEG-4) has beenexceeded, and if so caching that content within a storage location(e.g., the server 204) so as to obviate transformation.

As indicated above, the transformation entity 206 may comprise anynumber of different configurations and functions. In one variant, thetransformation entity 206 comprises a transcoder adapted to transcodevideo and/or audio content from one encoding domain to another. Forexample, one exemplary process comprises transcoding an MPEG-2 encodedvideo file to an AVC/H.264 format. This might be useful for example in acase where the delivery channel to the target device (e.g., a laptop,handheld, etc.) is bandwidth constrained, since the H.264 encoding willtypically require a lower bitrate for the same content. Similarly, ifthe target device has only an H.264 codec, the content must betranscoded (or alternatively transcoded on the target platform itself).Any multitude of reasons may exist for transcoding content beforedelivery.

It will also be recognized that transcoding process may be lossy ornon-lossy in nature. For example, in one variant of the invention, afirst codec (e.g., algorithm) is used to decode data or files encoded ina first format (F1), and recode the decoded data in a second format(F2). If the first encoding process was lossy, some of the quality ofthe original data (i.e., before encoding with F1) will be lost in thedecoding process, thereby producing decoded or intermediate data thathas less quality or coherence to the original data. When a second lossyprocess is used to encode the decoded data (F2), further losses aresustained, since inter alia the target platform (e.g., CPE or mobiledevice in the subscriber premises network) will need to decode the F2encoded format. Hence, multiple decodings and encodings using lossycodecs will rapidly reduce quality in an irreversible manner.

Accordingly, in one embodiment of the invention, the controller 208 isconfigured to track the number of encodings/decodings experienced by aparticular content element (such as via metadata that is updated uponeach encoding/decoding) and prohibit further encoding/decoding in thecase a prescribed limit is reached. For example, an ingested MPEG-2encoded content element may be transcoded to AVC/H/264, and then cachedfor later use. If the transcoded AVC/H.264 element is then used as thebasis for a second transcoding to another format (e.g., RealVideo 10),an undesirable level of degradation may result. Hence, the cachecontroller 208 may be programmed to preclude drawing source contentelements from a cache store for example. Myriad approaches to ensuring alimited number of transcodings (or reduction of quality) will berecognized by those of ordinary skill given the present disclosure.These may include for example estimations or actual measurements orcalculations of quality degradation,

In a “hybrid” implementation, one of the codecs (F1 or F2) may be lossyand the other non-lossy. This approach has less loss of quality than thelossy/lossy approach previously described. Hence, one variant of theinvention uses distribution of the original content from the source in aformat that is non-lossy, which can then be decoded without loss, andre-encoded in a lossy (or another non-lossy) format. This has theadvantage of providing a higher level of quality in the transcoded (andsubsequently decoded) data, yet may have the drawback of generallyrequiring transcoding in most or all cases where such non-lossy formatsmay not be widely useful within the bearer network.

In a fully loss-less approach, both the F1 and F2 codecs are loss-less,and hence little if any degradation will occur even after multipletranscodings (assuming all codecs in the process are loss-less).

The transformation entity 206 may also transrate the content (optionallyindependent of whether or not transcoding is performed, or alternativelyas part of the transcoding function) in order to adjust the bitrate.Transrating may include for example changing or altering content fromone bitrate, GOP (group of pictures) size, resolution, etc. to adifferent bitrate, GOP size, resolution, etc. (e.g. 3.75 Mbps to 2.00Mbps). Such transrating may be useful under number of differentcircumstances. For example, during statistical multiplexing orre-multiplexing operations, transrating may be used to prevent the totalaggregated bandwidth from exceeding a prescribed level (e.g. channelcapacity). Transrating can also be used for example in the headend 150to intentionally reduce the bitrate of a transport stream (or certainprograms therein) without having to decode and re-encode the content.This may be the case for example where one or more VBR programs exhibitvery high bitrate variation from the source. Transrating may also beused to adapt a higher bitrate stream for delivery over a limitedbandwidth communication channel, or for target devices that can onlyhandle a lower bitrate (or conversely that cannot make use of the higherbitrate due to display resolution, codec, or other limitations.

A common approach for bit-rate reduction (in the compressed domain) isrequantization; e.g., increasing the quantization step-size of theDiscrete Cosine Transform (DCT) coefficients in each video block.Open-loop or closed-loop solutions may be used, as may so-called“simple” requantization techniques, which apply the standard complexitymodel and rate control of TM5 (MPEG-2 Test Model 5) to set a newquantization step-size for each macro-block (MB). As another option,Lagrangian optimization may be used for finding the optimal quantizationstep for each MB to meet a desired bit-rate with a minimum ofdistortion. A transrated bit stream provides generally produces a higherpeak-signal-to-noise-ratio (PSNR) than a decoder-encoder approach (i.e.,re-encoding of the decoded video to the reduced bit-rate).

In terms of GOP size, Intra (I)-frames and Instantaneous Decoder Refresh(IDR) frames serve as the reference for all frames in a GOP. Similarly,P- and B-frames can be referenced by other frames. As is well known,many video technologies transmit a differential frame that is used toindicate a difference between a prior video frame and the current framein order to minimize a size of frames transmitted at a given frame rate.The differential frame includes only the coded video information that isnot identical to the previous frame. A so-called “key” frame istransmitted; the key frame includes coded video information having nocorrelation with the previous/next video frames. This key frame may betransmitted at different times; e.g., periodically, or at a time whenthe video image undergoes a significant change. I-frames (H.263 orMoving Picture Experts Group (MPEG)-4), and an IDR-frames (MPEG-4part-10/H.264) are used to perform key frame functions.

In addition to the coded video data included in the key frame,information necessary for decoding (such as image size and a basicquantization value of the video image) can be included in the key frame.For example, such information includes Video Object Layer (VOL) forMPEG-4 part-2, and Sequence Parameter Set (SPS) and Picture ParameterSet (PPS) for MPEG-4 part-10/H.264. A key frame may be identified assuch using the header of the coded video information without fullydecoding the encoded data.

Accordingly, in another variant of the invention, parameters related toGOP size or referencing may be varied by the transformation entity 206so as to achieve desired goals or functionality. For instance, the GOPsize can be varied based on QoS or loss data; e.g., a channel prone topacket loss may function better or with less perceptible visual qualitydegradation if the GOP size is reduced (i.e., the effect of losing oneor more I/IDR frames is less). Similarly, the scheme, frequency or rateof transmission of key frames may be altered, as may I-frame orIDR-frame spacing. Various other adjustments or modifications that canbe performed by the transformation entity 206 will also be appreciatedby those of ordinary skill.

Alternatively (or additionally), the transformation entity 206 mayprovide transcryption functionality; e.g., translation between oneencryption domain to another. For example, transcryption may be used tomove between encryption formats used by different content protection orconditional access (CA) systems (e.g., from an MSO's indigenous DRMscheme to another scheme such as Windows Media DRM (“WMDRM”) or DigitalTransmission Content Protection (“DTCP”) on a subscriber PC), or providea transitory encryption for the digital content while it is beingtransferred between different systems and/or components. In thisfashion, content or other data within the cable security or CAenvironment can “jump the fence” to DRM or other security environmentsthat may be more widely deployed on IP-based devices for example. Thisis particularly useful for the IP-based delivery targets such as thosedescribed with respect to FIG. 2A herein.

The apparatus of FIG. 2 may also comprise a database 210 useful forinter alia storing and accessing content versions and associated data(e.g., tuples, discussed subsequently herein, or other data structures).In one embodiment, the database comprises a relational or SQL databaseof the type well known in the data processing arts. A relationaldatabase comprises a collection of “relations” (frequently calledtables). A relation is generally defined as a set of tuples that eachhave the same attributes. This may be represented by a table comprisingdata organized in rows and columns. In a relational database, all of thedata stored in a column is typically in the same domain (i.e. datatype). The tuples should not have any ordering (i.e., no order to thetuples, and the tuples should not impose any order of the attributes).Yet other approaches for structuring the cached content database may beused consistent with present invention, the foregoing relationaldatabase being merely illustrative.

FIG. 2A illustrates one exemplary implementation of the generalizedarchitecture of FIG. 2. Specifically, as shown in FIG. 2A, thearchitecture 230 comprises a bus (e.g., industry standard or ISA)coupling a plurality of elements including an application server 104,billing management system (BMS) or module 152, VoD server 105, mediagateway (MG) 232, and web-based guide and “store front” 234 (e.g., userinterface). The BMS is in communication with the global session resourcemanager (GSRM) 237 via a digital storage media command and control(DSM-CC) protocol of the type well known in the cable television arts.The GSRM is responsible for, inter alia, session establishment andresource management.

Appendix I hereto provides the details of one exemplary implementationof the protocol used by the GSRM (global session resource manager) 237in communicating with the transformation entity 206 (e.g.,transcoder/transrater/transcryptor) as part of creating and managingsessions in accordance with one embodiment of the invention.

The VoD server 105 communicates with a proxy gateway 240 using forexample the lightweight stream control protocol (LSCP) or other suchprotocol. The proxy gateway 240 acts as an interface between the realtime streaming protocol (RTSP) domain 242 and the ISA domain 244 asshown in FIG. 2A. The VoD server 105 and other ISA-domain entitiestherefore use the gateway to communicate with downstream entities suchas DSTBs or CPE 106, PCs 246, WiFi-enabled devices 248, and other useror client devices via the RTSP protocol.

The GSRM 237 of FIG. 2A communicates with the CPE 106, PC 246, WiFidevices, etc. via the proxy gateway 240 using inter alia the SessionSetup Protocol (SSP). Appendix II hereto provides an exemplary(extended) implementation of the SSP. The exemplary extended SSP ofAppendix II includes provisions for providing CPE 106 profile andconfiguration data as part of the session request protocol. Sampleencodings for CPE or other capabilities are also provided.

The media gateway 232 receives media content from a storage server 250,which in turn receives media content from e.g., anencoder/transcoder/transrater 252, such as for example an AVC/H264device as shown. The encoder/transcoder/transrater also generates amedia stream for delivery over a packet protocol (e.g., MPEG-2 over RTP)for delivery over an IP or similar network 254, as shown in FIG. 2A. Adigital rights management (DRM) encryption unit 256 is also coupled tothe IP network 254 so as to selectively encrypt content for delivery tothe subscriber premises or other location(s). A separate pathway betweenthe storage server 250 and the IP network 254 is also optionallyprovided via an interposed download server 258 (and optional associatedDRM encryptor 260.

The media delivered by the MG 232 to the VoD server 105 is selectivelydelivered downstream to the PC 246, WiFi device 248, etc. in theillustrated embodiment via the IP network 254. Depending on whethertranscoding/transrating is required, the content istranscoded/transrated via a transcoder/transrater 262 as shown. In theexemplary logic, a “stream counter” or similar mechanism is used in oneembodiment to effect the server caching functions previously described;e.g., caching transcoded or transrated content when the use countexceeds a prescribed threshold (such as 1 one use as indicated on FIG.2A), or meets one or more other criteria. Accordingly, the delivery tothe IP network 254 in the latter case is direct as shown; i.e., thetranscoder/transrater 262 is bypassed since the cached andtranscoded/transrated content is immediately available.

It will be appreciated that while the exemplary configuration of FIG. 2Ashows an IP-based delivery paradigm, the present invention may be usedwith equal success over other delivery paradigms and transports. Forexample, in-band downstream delivery of content from the VoD server overthe HFC network 101 may be used.

Transmissions of requested content can also be multicast or broadcastover the IP network if desired. This may be desirable where multiplerequesting CPE have issued simultaneously (or at least in some fairlyclose temporal relationship) requests for similar content elements, orwhere the managerial process (e.g., caching controller 208 or GSRM 237)recognizes that several similar or identical requests are queued orpending servicing.

Exemplary Methods—

Referring now to FIGS. 3-3 d, exemplary embodiments of the methodsaccording to the present invention are described.

FIG. 3 illustrates one embodiment of a generalized methodology ofoperating a content based network (e.g., cable or satellite network)according to the invention. As shown in FIG. 3, the method 300 comprisesfirst receiving a request for content delivery from a user (e.g., viatheir CPE 106 or other device such as a PC, laptop or handheld computer)per step 302. The request may be routed for example to the GSRM 237associated with the VoD server 105, as in a VoD session request, whichthen routes the request (or information relating thereto, such as via aninter-process message) to the caching controller (CC) 208.

Next, per step 304, the request is evaluated in terms of itsrelationship to one or more caching criteria. For example, the cachingcontroller 208 might determine whether the request is a first requestfor this content in the required format within a prescribed period oftime, number of total requests, etc., or whether other such requestsbeen recently received. Myriad other evaluation schemes may be employedas described subsequently herein with respect to FIGS. 3A-3 c.

Per step 306, the results of the evaluation are used to determine thecaching response and delivery mode of the requested content.

For example, as shown in the exemplary implementation of FIG. 3A, if theforegoing evaluation regarding recent requests per step 304 indicatesthat no similar recent requests exist, then the requested content in therequired format is likely (or certainly) not in the cache storage area,and hence a direct transformation (i.e., transcoding, transrating,and/or transcrypting) and delivery is selected (step 312).Alternatively, if the evaluation indicates that similar requests havebeen recently received, the CC 208 will (i) direct the GSRM 237 or otherrelevant process to examine the cache for the requested content in therequested format (step 314), and either deliver the content from thecache without transformation if it is located (step 316), or transformand deliver the content in real time if it is not located (steps 318 and320); and (ii) if the content is not presently in the cache per step314, determine whether the transformed content should be cached so as toostensibly service subsequent requests (step 322).

In the foregoing implementation, anecdotal “popularity” of sorts (e.g.,how frequently/recently a given content element in a given form isrequested for delivery) is used as a caching determinant criterion. Thisapproach has the advantages of simplicity and passivity; i.e., thecalculations and processing regarding determinations of popularity arerelatively simple, and the inputs necessary to perform such calculationsare obtained entirely passively (such as from upstream tuning ordelivery requests sent to the MSO from the subscriber's CPE, PC, etc.).

However, it will be appreciated that other caching determinants may beused, whether alone or in combination. For example, determinants orcriteria for consideration by the CC caching algorithm might includewithout limitation: (i) historical data or patterns; (ii) particularprofile data for one or more subscribers or their CPE 106; (iii) errorslogged on the CPE; (iv) date, time of day or presence of holidays orother special events.

Specifically, in one variant, historical data or patterns relating tothe requesting subscriber, groups of subscribers in the network, or evenlarger subsets of the population (including those outside of the MSOsubscriber pool) may be used. For example, the historical tuning orrequest (e.g., VoD request) history of a subscriber can be evaluated andused as a basis for predictive caching or “focus” (i.e., reducing thepopulation of content elements that are eligible for caching, therebyostensibly reducing processing overhead and latency). This may beimplemented in an individual or group fashion. For instance, when aparticular subscriber's CPE 106 is energized, they may be marked as“eligible” for submitting a content request. If that subscriber has veryrecently requested a content delivery (e.g., movie), it can be presumedthat they will not request another content element delivery for at leasta period of time.

Similarly, past selections of particular content elements for asubscriber may be reviewed and used as a “mask” of sorts; i.e., it canbe surmised under one CC rule that there is a low probability that thesubscriber would request that same content element again (or at leastwithin a certain time frame of the prior request), and hence suchcontent elements can be masked (or at least weighted less for selection)than other content elements that have not been selected.

In another variant, particular profile data for one or more subscribersor their CPE 106 (e.g., demographic or psychographic data, codec typesor other capabilities of the CPE, types of other connected devices suchas a DVRs, WiFi hub or AP, MoCA, FireWire or USB port, etc.) can be usedas a basis for the CC 208 caching logic. If for example the MSO (CC)knows that all CPE 106 online at a given time are MPEG-2 decode capableonly, then caching of AVC/H.264 versions of “popular” content would havelittle or no utility (recognizing that a subscriber may howeverspontaneously connect an AVC/H.264-enabled device to the network at anytime, or make a “pass-through” request via the CPE, such as via theconverged premises device (CPD) described subsequently herein).

Similarly, if the MSO knows from its subscriber database or other suchdata (e.g., historicals) that most of the subscribers who are avidgolfers or golf enthusiasts are currently online or utilizing their CPE(such as via channel change commands, heartbeat from the CPE indicatingthat it is powered up, etc.), then the CC 208 might selectivelyprioritize caching content with golf-related themes (such as my beindicated by metadata associated with the content) in various formats inanticipation that there would be a greater-than-average demand for thesetitles as opposed to any others. Myriad other uses of information ordata derived from network equipment or subscribers will be recognized bythose of ordinary skill.

Also, errors logged on the CPE or other connected devices may becollected and evaluated by the MSO (or CC 208). This information may beuseful from the standpoint of identifying events related to inability todecode content, inappropriate bitrate, unsuccessful conditional access,etc., thereby in effect specifying what does not work for a givendevice. For instance, if an MPEG-2 delivery was attempted to aparticular device, but the stream was terminated due to a decoderincompatibility, decode error, or the like, then the CC 208 couldsurmise that the relevant device does not have an MPEG-2 decoder, andhence (i) subsequent delivery requests by that device should not be inMPEG-2 form; and (ii) caching of content should not be based on requestsfrom that device, since they are inaccurate or unreliable (at least asto the encoder attribute).

In yet another variant, analysis of the date, time of day, or presenceof holidays or other special events can be evaluated by the MSO (or CC208) in implementing the caching logic. For instance, in some cases itcan be reliably projected that the popularity of a given genre or titlewill vary as a function of time of day (e.g., requests for adult contentare likely to increase later at night, while requests for cartooncontent or that targeting children may increase markedly on Saturdaymorning, etc.). Similarly, holiday-related titles will be more popularon the relevant holiday (e.g., It's a Wonderful Life on Christmas).

Various other historical and/or predictive approaches may be usedconsistent with the present invention, For example, the MSO canassociate a given subscriber/CPE with particular historical viewinghabits (see, e.g., the methods and apparatus described in co-owned U.S.patent application Ser. No. 11/243,720 entitled “SELF-MONITORING ANDOPTIMIZING NETWORK APPARATUS AND METHODS” filed Oct. 4, 2005, andpatented as U.S. Pat. No. 8,582,584 on Nov. 12, 2013, which isincorporated herein by reference in its entirety), whether on anindividual basis (i.e., utilizing historical information for thatparticular subscriber/CPE), or on a generic basis (e.g., using data fromthat subscriber's service group, zip code, or the network/region as awhole). Predictive template or artifact matching may also be utilized topredict subscriber activity on an individual or group basis, asdescribed for example in co-owned an co-pending U.S. patent applicationSer. No. 11/800,093 entitled “METHODS AND APPARATUS FOR PREDICTIVECAPACITY ALLOCATION” filed May 3, 2007, and incorporated herein byreference in its entirety. Various other types of speculative orpredictive approaches may be used with the present invention as well.

Data relating to particular subscribers can also be privacy protected ifdesired; i.e., at least a portion of the user information which could beused to personally identify a particular subscriber is firstprivacy-protected (e.g., hashed, scrambled, or otherwise enciphered).This process can be accomplished in a variety of ways. For example, inone embodiment, a one-way cryptographic hashing function is utilized,such as the hashing functions described in co-owned and co-pending U.S.patent application Ser. No. 11/186,452 filed Jul. 20, 2005 and entitled“METHOD AND APPARATUS FOR BOUNDARY-BASED NETWORK OPERATION,” which isincorporated herein by reference in its entirety. In this fashion, thesubscriber's personal tuning and viewing habits can be used by the MSOwithout necessarily knowing which subscriber these habits relate to.These techniques can also be used to isolate various groups ofsubscribers within the network; e.g., those within a particular zipcode, such as for localized or “targeted” caching of content.

It will also be recognized that while the operation of the CC 208 in thepreviously described embodiment is effectively based on atwo-dimensional matrix (i.e., content element identity or title versusencoding format), higher-order matrices or logical processes may beused. For example, the CC 208 might examine the content element/title,encoding format, and bitrate variables. Similarly, the encryption domainmay be considered. A tuple or other such well known logicalrepresentation or data structure may be used for the purpose ofidentifying the various permutations associated with a content element,such as is shown in Eqn. (1):

P _(iC1) ={c _(i) ,b _(i) ,e _(i)}  Eqn. (1)

where:

-   -   P_(iC1)=Parametric description of version i of content element        C1    -   c_(i)=codec type for version i    -   b_(i)=bitrate for version i    -   e_(i)=encryption type/domain for version i        Hence, it can be appreciated that in such a case where there are        multiple options for each variable c_(i), b_(i), e_(i), a large        number of permutations of a given content element can exist.        See, e.g., Table 1 below, which illustrates a small portion of        such possible permutations for two exemplary content elements C₁        and C₂.

TABLE 1 Codec (c) Bitrate (b) Encryption (e) Content (0 = MPEG2; (0 = 15Mbps; (0 = None; Element 1 = MPEG4; 1 = 3.75 Mbps; 1 = DTCP; (C_(n))Version (i) 2 = AVC/H.264) 2 = 1.5 Mbps) 2 = WMDRM) C₁ 1 0 0 0 2 0 1 1 32 2 0 C₂ 1 0 1 0 2 2 2 2Probabilities of selection may also be assigned to the various optionsfor each variable. For example, if a statistical analysis of the networkindicates that on average, 9 of every 10 subscriber's CPE within thenetwork has MPEG-2 decode capability, the “MPEG-2” option for variable“c_(i)” could be assigned a proportional weight or probability (e.g.,p₁= 9/10 or 90%). Similarly, if a particular bitrate was most popular orprevalent (e.g., HD capability comprised only 25% of networksubscribers), then similar weighting could be assigned. The CC 208 maythen, according to one variant of the invention, invoke an algorithmicscheme wherein the version of a content element (e.g., C₁) selected forcaching is selected based on the highest aggregated or multiplicativeprobability associated with its parametric description, such as in Eqn.(2) below:

p _(aiC1) ={p _(ci) ·p _(bi) ·p _(ei)}  Eqn. (2)

where:

-   -   p_(aiC1)=aggregated probability of version i of content element        C1    -   p_(ci)=probability of codec type for version i    -   p_(bi)=probability of bitrate value for version i    -   p_(ei)=probability of encryption type for version i        For example, if first, second and third versions of the same        content element C₁ have an overall probability (p_(aiC1)) of        selection of 0.7, 0.6, and 0.3 respectively, the CC 208 would        select the first (0.7) version for caching since it is most        likely to be requested, all else being equal. However, as        previously noted, if other information is available (e.g., that        only CPE 106 or PCs having H.264 encoders are presently online        within the designated target group, then the aforementioned        selection based on probability may be affected. Specifically, in        this case, the probability coefficient for the encoder variable        c_(i) would be adjusted such that the H.264 option is given a        value of p=1.0 or 100% probability, which may cause the overall        or aggregated probability for one or more versions to increase,        thereby potentially altering the order of selection by the CC        208.

The foregoing approach may be particularly useful where cache storageroom exists for a limited number of versions of a given “popular”content element, and the CC must intelligently select which versions aremost suitable for the prevailing (or projected) network conditions andviewing subscriber pool.

It will also be appreciated that where multiple content elements arerequested, the relative popularity of a given content element may needto be balanced against available cache storage and the popularity ofother programs. Specifically, the CC 208 of the exemplary embodimentmust decide whether to cache two or more versions of a given contentelement, or rather cache one or more versions of another “popular”content element instead in the case where cache storage is constrained.Stated simply, not all versions of all content elements can be cached(rather in practice, typically only a small subset may be cached), andhence the relative popularity of each version of multiple differentcontent elements can be evaluated. For instance, if Pirates of theCaribbean comprises the most requested content element during a giventime period, and the movie 300 the next most frequently requested, theCC 208 may be forced to choose between (i) adding additional versions ofPirates of the Caribbean to the cache, and (ii) adding one or moreversions of 300 to the cache. Analysis of the requests for each of theaforementioned movies during the relevant period may yield that therequests were heavily weighted toward MPEG-2 encodings at standarddefinition. Hence, it would typically be more efficient in such a caseto add at least the MPEG-2 SD version of 300 to the cache before anyfurther versions of Pirates of the Caribbean were added, since moreprospective requests could be serviced from the cache with the MPEG-2version of 300 than say an AVC/H.264 version of Pirates of theCaribbean. However, the next most popular request after the MPEG-2version of 300 may be e.g., the AVC version of Pirates of the Caribbean.Hence, a version-by-version analysis of the various requested contentelements may be employed for determining and dynamically varying thecontents of the cache.

It may be the case that most popular (i.e., frequently requested)content element is distributed across multiple {c,b,e} options. Forexample, Pirates of the Caribbean may be the most requested contentelement, but the requests may be in general somewhat evenly distributedacross the various {c,b,e} options. Hence, the CC 208 may utilizeavailable caching space to load multiple versions of Pirates of theCaribbean based on order of request frequency, and then if additionalcache space is available, load one or more versions of the next mostpopular content element, and so forth.

As previously noted, the exemplary embodiment of the present inventionseeks in effect to strike a balance between reducing transformationrequirements and latency, and reducing cache storage requirements.However, this balance may be varied dynamically and adaptively by the CC208 as a function of time and/or changing network conditions, which mayinclude available cache space, the present need for the variousdifferent options within a {c,b,e} variable, network bandwidthconstraints, new operational or revenue goals, and so forth. Forexample, where available cache storage is effectively unlimited, the CC208 may dynamically increase the number of different versions of apopular content element so as to avoid transformation processing to themaximum degree (the “saved” processing overhead being available forother tasks, or to permit equipment to be taken offline). Alternatively,where cache space is limited, the CC 208 might reduce the number ofversions. As previously discussed, such dynamic increases or reductionsmay be based on any number of different factors such as e.g., a prioriknowledge of the capabilities of devices presently coupled to thenetwork. For instance, an AVC-encoded version of a content element wouldlikely not be requested if none of the subscribers in a service groupare operating AVC-enabled devices (although an AVC device could bespontaneously coupled to the CPE or another network interface).Similarly, if all or most subscribers in a service group have “near-HD”upconversion capability, and bandwidth and/or cache storage space arelimited, then an SD-encoded version of a program could be selected forcaching, since it would in effect deliver HD quality with much lessnetwork “cost”. Accordingly, the present invention further contemplatesthe use of cost/benefit analyses (whether based on operationalconsiderations, business considerations, or both) as part of the CC 208caching logic.

As part of the dynamic and adaptive operation of the CC 208 discussedabove, de-caching logic is also provided; see inter alia the discussionprovided subsequently herein with respect to FIG. 3C.

It will also be appreciated that “asymmetric” results or effectsassociated with two or more different options that may be selected bythe CC 208 can be considered in pre-fetch or caching determinations. Forinstance, the benefit of experiencing a cache “hit” (i.e., having one ormore subscribers request content which was cached) at a given time maybe different in magnitude, importance, cost, etc. than the detriment inexperiencing a cache “miss” request for un-cached content) at that samepoint in time. Moreover, this relative relationship between benefit anddetriment for the hit and miss, respectively can vary significantly as afunction of time due to e.g., changes in available bandwidth, totaldemand, mix of the demand (e.g., BSA versus VoD), RTA costs, etc.

In another variant of the caching methodology (FIG. 3B), the CC 208receives a request for a particular content element (step 340) from asubscriber. A cache database directory or other such data structure isthen searched for the requested content (or content version havingparticular attributes, as described subsequently herein) per step 342.Various arguments can be used as the search criteria, including e.g., acontent ID number uniquely associated with a particular title orversion, a plaintext or human readable description (such as in the formof metadata), codes indicating various attributes (e.g., binary bitcombinations indicative of various different codec, bitrate, and/orencryption options), etc. Those of ordinary skill in the computerdatabase arts will readily recognize a plethora of different means bywhich such searching can be performed.

If the requested content is found in the cache, the content is servedper step 344 from the cache (e.g., re-ingested into the VoD server 105),and a counter function or module within the CC 208 updated to reflectthe request per step 345. If the content is not found in the cache, theCC 208 next examines whether the relevant caching criteria (e.g., thatparticular content element has been requested by one or more othersubscriber(s) within the target population within a prescribed intervalor period of time) per step 346. In this case, the “target population”may be for example subscribers: (i) within the same MSO network; (ii)within the same subportion of the MSO network (e.g., served by the samehub, same service group, etc.); (iii) those sharing a common attribute(e.g., same zip code, same demographic or psychographic category, sametype of CPE, subscription level, etc.), and so forth. Hence, the CC 208can advantageously base its caching decisions on anything ranging fromthe entire MSO network to small subsets thereof, or even individuals,and this parameter may be made dynamically variable by the MSO or evenby the CC 208 itself.

The determination of step 346 may be conducted by, e.g., accessing thecounter function or module within the CC 208, which counts the number ofrequests for a particular content element (whether based ontitle/content of that element alone, or also on its attributes such asencoding, etc., as described subsequently herein). Other approaches maybe used as well.

Next, if the examination of step 346 indicates that the necessarycaching criteria are met (e.g., a match exists between the presentcontent request and a prescribed number of prior requests falling withina prescribed timeframe or window), then the CC 208 will direct the VoDserver or other relevant device to service the present request per step350 (which may include transforming the content per step 348), cache thecontent being provided per step 352, and update a database directory orother accessible record to reflect the presence of the content in thecache (and also its attributes) per step 354. The counter function isalso updated per step 345.

Alternatively, if the caching criteria are not met per step 346, thenthe CC 208 does not cause the content to be cached, and further updatesthe counter function per step 345 to reflect the occurrence of thatparticular request (and its attributes).

In one variant, the CC 208 (with assistance from the GSRM) monitorcontent element and client type usage. Popular content elements meetingcaching criteria may optionally be assigned one or more “temporary”asset classifications, which allows the CC 208 to delineate ordifferentiate between cached content elements that are to be treateddifferently. For example, a set of condition codes or the like (e.g.,one or more binary bits) can be assigned to content such as to impose apriority or order of de-caching. The MSO might desire to impose ade-caching hierarchy or priority scheme based on any number of differentconsiderations including, e.g., profit or revenue, maintenance orfailure of certain transformation (e.g., transcoding) resources,bandwidth or other operational factors, and so forth. Hence, all elsebeing equal, the CC 208 would prioritize removal or de-caching ofcertain content elements over others based on these condition codes.

As noted, these condition codes may be temporary in nature, and evendynamically varied as network/subscriber conditions change. Hence, onevariant of the invention utilizes a module within the CC 208periodically re-evaluate and adjust condition codes associated withcached content as required by then-prevailing, or even anticipatedfuture conditions.

Additionally, the condition codes or a similar mechanism can be used tosegregate content; i.e., partition the cache space or portions thereofinto two or more subsets. This partitioning may be used for, e.g.,separating cached content that is available for delivery (serving)versus that which is not, delineating subsets of the cache storagevolume for maintenance, troubleshooting, or management (e.g., diskdefragmentation, etc.), segregating content by type (e.g., adult versusother), and any number of other reasons.

Moreover, cache storage may be implemented as banks of storage spacededicated to certain type and/or attributes of content. For example, onestorage bank may be dedicated to the most recently watched or popularcontent elements, while other banks are dedicated to less popularcontent. The “popular” bank may have enhanced performance, reducedlatency, etc. since it is most likely to be accessed. As anotheralternative, all HD content might be maintained in one bank, with all SDcontent in another bank (so as to leverage commonalities associated withprocessing the different resolution content). As yet anotheralternative, all content encoded with a certain type of codec (e.g.,MPEG-2) could be stored in a first bank, all AVC/H.264 content in asecond bank, and so forth. Hence, the cache can be organized alongliterally any logical dividing line that to effectuate the desired goalsof the CC 208 and MSO and make use of any economies or scale orcommonalities in processing.

As previously noted, the database search of step 342 and/or the cachingcriteria examination of step 346 may be based purely on the contentelement (i.e., evaluating the title, content ID, metadata, etc.)irrespective of the coding/bitrate/encryption environment of thatcontent element, or alternatively one or more of the foregoingattributes can be evaluated as well. In the former case, thedetermination of a cached content element or prior request for thecontent element (irrespective of other attributes) can be used as aninput to the CC's logical process, which then invokes an algorithm thatmakes caching decisions based on other criteria (e.g., predictive orhistorical paradigms, signals or data obtained from the subscriber's CPEor the network, etc.) as described in detail elsewhere herein. Hence,the CC logic might determine whether any version of the requestedcontent element has been cached per step 342, and then take actionaccordingly (e.g., transform that cached version into the formatrequired by the pending request, as opposed to transforming an ingested“source” version).

Alternatively, the latter approach of evaluating the title and also theother attributes of the content element can be used in one variant as anend result; i.e., if the evaluation indicates a match based on title andother attributes such as encoding, bitrate and encryption environment,then the caching decision is made based thereon.

The present invention also contemplates the ability of the CC 208 toevaluate one or more cached versions of a particular content element forpossible transformation, as opposed to using the source content (e.g.,that ingested via an interface to a third party content source or thelike). For example, it may be that a cached version of a given titledoes not exactly match the requested format associated with a currentrequest, but it none-the-less can be more efficiently or easilytransformed than could the “source” content. This might be the casewhere, e.g., the transformation assets (such as an transcoder ortransrater) necessary to transform the source content are unavailable orover-utilized, or alternatively where increased content quality losswould occur if the transformation from the source content wereperformed.

Similarly, where all but one of the attributes matches, it may be moredesirable to make the transformation from a cached version rather thanthe source version. For instance, where the title, encoding scheme, andbitrate match, but the encryption scheme does not, it may be moreefficient to transcrypt (e.g., decrypt and re-encrypt according to thenew scheme or key) as opposed to possibly transcoding/transrating, andtranscrypting the source content.

It will be apparent that many different variations and permutations ofthis decision process will exist, depending on the format of the“source” content versus that of the nearest cached content, as they bothrelate to the requested content format. For example, the request forcontent may be for an AVC/H.264 format at 2.0 Mbps with WMDRM. If the“nearest” (i.e., logically or closest matching) cached version comprisesthe same title encoded in AVC/H.264 at 2.0 Mbps yet with another DRMscheme, and the source content is MPEG-2 encoded at 3.75 Mbps withWMDRM, it may be more efficient for the CC 208 to transcrypt the nearestcached version to WMDRM, as opposed to transcoding from MPEG-2 to AVC,and transrating from 3.75 Mbps down to 2.0 Mbps. However, if the nearestcached version is also MPEG-2 encoded at 3.75 Mbps with a non-WMDRMscheme, it is more efficient to transcode and transrate the sourcecontent, since it is more “proximate” in {c,b,e} space to the requestthan is the cached version.

“De-caching” (i.e., removal or expiration of a given content elementversion within the cache) policies are also implemented by the CC 208 ofthe present embodiment. Specifically, such de-caching is necessary topolice systems with limited cache resources (or even those whereunbridled caching will cause a deleterious or undesired effect, such asincreased latency due to having to search the cache directory for aparticular version of a content element from perhaps millions ofdifferent titles/versions). This also becomes increasingly important asthe depth or complexity of caching is increased; i.e., as moresophisticated or complex searches are used (e.g., a search for Title Ahaving associated metadata matching argument B and encoding type C withbitrate D and encryption type E, etc.).

In one embodiment of the invention, a de-caching operation (FIG. 3C) isinvoked after a trigger occurs per step 361 (e.g., expiration of atimer, reaching a certain fullness level in the cache storage volume,etc.), and one or more de-caching criteria are evaluated (step 362) andmet (step 364). These may include, for example: (i) the content element(version) is already cached; (ii) an actual or projected decline in thepopularity of or number of requests for the content element (e.g.,Valentine's Day has passed, so fewer requests for romantic contenttitles of any version are anticipated); (iii) an actual or projecteddecline in the number of requests for particular versions of content(e.g., after a certain time of day, most content requests are for MPEG-2encodings, irrespective of the identity of the content element/title);(iv) the cached version is particularly storage-space intensive ascompared to other versions or content elements, yet no moretransformation-intensive; (v) search and/or retrieval latency isbecoming unacceptable due to too many titles/versions being cached; andso forth. Myriad individual criteria or combinations of criteria will berecognized by those of ordinary skill given the present disclosure.

When the relevant de-caching criteria are met per step 364, the CC 208will remove the specific cached version from the system to recoverstorage space (step 366). This removal may be immediate (e.g., where thefile is immediately removed from the storage device via deletion ormovement), such as by marking or designating a database entry associatedwith the version as no longer accessible, and then allowing theassociated storage area with that content element to be written over,much as a PC HDD removes one or more characters of a file name whichthan makes the file inaccessible, and associated sectors of the HDDavailable for write-over.

In another variant, versions of content that are no longer required maybe removed by attrition using a “dead man switch” approach; i.e., thecontent version is automatically removed according to a schedule or uponthe occurrence of an event (e.g., expiration of a timer) unless thatversion is affirmatively “reset” by the CC 208, such as where there iscontinued demand for that version, and its presence in the cachecontinues to provide benefit for the MSO.

It can be seen from the foregoing discussion that the efficacy of the“attribute matching” approach is to a large degree tied to the existenceof statistical features or probabilities within the subscriber pool.Specifically, in the case where most all subscribers are heterogeneousin terms of their content requests (i.e., most everyone was requesting adifferent content element, or rather the same content element but thatuses a different codec, bitrate, and/or encryption or securityenvironment), the positive effect of caching would be minimal, sincemost every new request would need to be transformed to meet thediffering requirements thereof.

However, where significant commonality in the form and timing of contentrequests exists, this commonality can be exploited. For example, in thehypothetical case where most all content requests were for the samecontent having the same attributes, and were received at generallysimilar times, then the caching methods of the present invention wouldgreatly enhance network efficiency, since most requests would berepetitively serviced using one or a small number of cached versions ofthe requested content element. Hence, in the instance where a verypopular content element is repeatedly requested by subscribers havingsimilar CPE 106 or other target platforms (e.g., all have the samecodec, can utilize the same bitrate/resolution, and the same encryptionor CA environment), then significant gains can be realized. Thiscondition of “similar requests from similar devices” may exist in manycontent-based networks to a large degree, since the MSO or other networkoperator is to some extent in control of the CPE or other devices usedby the subscriber.

Clearly, actual every-day operation of the typical MSO network will fallsomewhere between these two extremes (i.e., complete heterogeneity andcomplete homogeneity); but to the degree that any of the foregoingcommonalities exist, the network can benefit from the attribute-matchingcaching approaches described herein.

As the heterogeneity of devices increases (e.g., more non-MSO prescribeddevices are coupled to the network), the efficacy of the cachingapproach may be reduced somewhat. However, it is important to note thatthe performance received from caching even under such heterogeneousenvironments will still exceed that of a similar network withoutcaching, since under the latter (prior art) approach, each new requestthat differed from the baseline or “source” content parameters wouldneed to be transformed, irrespective of whether it had recently beentransformed in a similar fashion or not. Stated simply, the cachingapproach of the present invention will always provide some benefit; thedegree of that benefit, however, is dependent in large part on (i) theheterogeneity of the target device environment, and (ii) subscriberbehavior (e.g., popularity of specific content titles, etc.).

It will also be appreciated however that as interest from similarhosts/devices increases in a particular content element, the cachingapproach will become more efficient in the use of network andtransformation (i.e., transcoding/transrating/transcrypting) resources.Hence, there will often be a dynamic variation in efficiency with time;e.g., as the popularity of a content element increases due to forexample advertising or promotion, word-of-mouth, or even changes in timeof day or day of the week. For instance, the popularity of a given titlemay increase significantly concurrent with release of the content viathe network, the occurrence of related current events (e.g., the movieIndependence Day might be in high demand if/when aliens first visitEarth, etc.), holidays, etc. Similarly, the popularity of a specificversion of a content element might increase markedly when that versionis released; e.g., the availability of an iPod™- or iPhone™-friendlyversion of a full-length movie over the MSO network. When such increasesin popularity occur, they can be readily exploited through “intelligent”caching behavior as described herein.

Referring now to FIG. 3D, another embodiment of the methodology of thepresent invention is described. Specifically, the method 370 of FIG. 3Dis used for determining and utilizing decoding, bitrate, and/or DRMcapabilities of the CPE 106 or other device connected to the network(e.g., PC, handheld, etc.). This is in contrast to the purely passivemethodology described above with respect to FIG. 3.

As used in the present context, the term “connected” refers withoutlimitation to any devices which are in direct or indirect datacommunication with the CPE 106 or the network 101, whether in directphysical contact or not.

In a first step 372, the method 370 comprises obtaining informationregarding codec, bitrate, and/or DRM/CA capabilities from the device ofinterest. This can be accomplished in one variant using a networkprocess (e.g., GSRM 237 or CC 208) that is configured to generate (orcause to be generated) a polling message or query and transmit this tothe relevant CPE 106 or connected device. The CPE 106, device, or itsproxy then provides the requested profile information, and transmits itback to the GSRM or CC 208 or a proxy thereof. The CC 208 may alsocomprise a client portion operative to run on the CPE 106 or clientdevice as discussed below and with respect to FIGS. 4A-4 d.

In another variant, the GSRM or CC 208 accesses a local database havingpre-stored information relating to the CPE/client device capabilities.For example, the subscriber account associated with the CPE of interestmay have information relating to the CPE and other devices within theend user domain (e.g., subscriber's premises), such as may be providedby the subscriber at account or service establishment (e.g., via asurvey, network profile “wizard” running on the CPE, etc.), or passivelyover time as the CPE of that subscriber interfaces with the network. Aconverged premises device (CPD) acting as a gateway or centralizedinterface within the user domain for example may be configured to obtaininformation from any connected devices (e.g., a PMD plugged into a portof the CPD, or a WiFi enabled laptop or handheld that registers with theCPD acting as an 802.11 AP) and store this information locally ortransmit it upstream to a network process. The various end user devicesmay have an indigenous ability to communicate with the CPE/CPD for thispurpose (such as via software, etc. installed by the manufacturer, oraccording to a requisite interface standard or protocol used by thedevice), or alternatively the subscriber may load an application ontoeach device to permit it to communicate with the CPE/CPD (or even thenetwork GSRM or CC 208 directly). In one variant, the CPE/CPD or clientdevice is configured to automatically download this application onto theconnected device when the two interface for the first time, therebyobviating user intervention. For instance, a small client applicationmight be loaded onto the client device that allows for the determinationof hardware and/or software on the client device, such as via a hardwareor software registry or other such mechanism.

Next, per step 374, the GSRM or CC 208 evaluates the data obtainedregarding the CPE 106, and establishes a profile for the CPE 106 interms of the capabilities of interest. In one embodiment, thecapabilities of interest comprise the video codec, bitrate, andencryption/DRM support of the CPE (or the client device).

Pert step 376, the generated profile is then used as an input to theGSRM/CC process used select an appropriate content element for cachingas previously described.

The exemplary methods and apparatus of co-owned U.S. patent applicationSer. No. 11/904,408 filed Sep. 26, 2007 entitled “METHODS AND APPARATUSFOR DEVICE CAPABILITIES DISCOVERY AND UTILIZATION WITHIN A CONTENT-BASEDNETWORK”, and patented as U.S. Pat. No. 8,458,753 on Jun. 4, 2013, whichis incorporated herein by reference in its entirety, may also be usedfor obtaining information relating to CPE or client device codec,resolution, bitrate, etc. capabilities, and selecting an appropriateversion of requested content therefor.

In the context of delivery of packetized IP-based content (such as IPTV, etc.), the caching techniques and apparatus described herein may beused in conjunction with network bandwidth management techniques such ase.g., those described in co-owned U.S. patent application Ser. No.11/325,107 filed Jan. 3, 2006 and entitled “METHODS AND APPARATUS FOREFFICIENT IP MULTICASTING IN A CONTENT-BASED NETWORK”, and patented asU.S. Pat. No. 7,693,171 on Apr. 6, 2010, which is incorporated herein byreference in its entirety. Specifically, the disclosed methods andapparatus are directed to eliminating or reducing wasted bandwidthassociated with multicasting packetized content and thereby increasingthe overall efficiency of the network. In one exemplary embodiment, thesubscriber's cable modems are switched selectively among differentdownstream QAMs in similar fashion to the broadcast switched videopreviously described herein with respect to FIG. 1C, thereby allowingfor reduction in the total number of QAMs required to service the DOCSISfunctionality (which may include both traditional IP-based networkservices, as well as high-bandwidth video or “IP TV” content).Advantageously, these cable modems can be rapidly switched with nore-ranging or registration, thereby allowing for a substantiallyseamless and low-overhead switching transient which is transparent tothe user. The foregoing approach is particularly useful in the contentof IP or similar “multicast” content that is targeted for multiplesubscribers. Under the prior art, multicasting of such content wouldconsume significant amounts of bandwidth on the downstream channels,since the multicast content was essentially replicated for eachdifferent subscriber. In contrast, the aforementioned apparatus andmethods allow this multicast content to be delivered to multiplesubscribers by selectively tuning the subscribers to common channelswhere the content is already being delivered to other subscribers,thereby allowing for a 1:N expansion of the content with minimal if anyreplication. This further leverages the “caching gains” afforded by thepresent invention, since by combining both techniques, (i) cachedversions of content can be re-used multiple times (thereby obviatingtransformation), and (ii) the cached versions can be “multicast” bysteering requesting subscribers to a smaller number of QAMs where therequested content is being delivered, thereby conserving downstreambandwidth.

It will also be appreciated that the caching techniques and apparatusdescribed herein may be used consistent with a peer-to-peer (P2P)delivery paradigm. See, for example, co-owned and co-pending U.S. patentapplication Ser. No. 11/726,095 filed Mar. 20, 2007 and entitled “METHODAND APPARATUS FOR CONTENT DELIVERY AND REPLACEMENT IN A NETWORK”, alsoincorporated herein by reference in its entirety. Specifically, one ormore “peers” within a network can utilize a local caching controller(CC) 208, somewhat akin to the embodiment of FIG. 4B discussedpreviously herein, yet in the context of a peer device versusdistribution hub. One variant of this architecture comprises using CPEor client devices to act as peer content providers for one another. Thispeer relationship may be as simple as one device with certain content(or portions thereof) providing that content to another device. Moresophisticated variants of the invention employ the use of multiplesource peers (and in some cases multiple requesting or “sink” peers), ascontrolled by a server process. This P2P approach has many potentialbenefits including, for example, the ability to push at least somenetwork bandwidth consumption out to the edge of the network (e.g., hubsor other distribution nodes), thereby conserving bandwidth at the coreof the network, the latter which can often be the most critical orbandwidth constrained portion of the system. Moreover, requests outsidethe MSO network are obviated, thereby conserving resources in thisregard. Latency can also be reduced in some cases (e.g., where thenetwork is over-subscribed), since the requested content is acquired anddistributed locally versus having to come from the core (or athird-party content source routed through the core or other networkinfrastructure).

Since such peer devices invariably have limited cache storagecapability, efficient management of these assets can further enhance thebenefits provided by the distributed peer content serving architecture;e.g., by caching the most popular content versions for delivery to otherpeers.

Software Architecture—

Referring now to FIGS. 4A-4D, exemplary embodiments of the softwarearchitecture useful with the present invention are described in detail.It will be appreciated by those of ordinary skill that while fourexemplary embodiments are described herein, other variations andcombinations of the following architectures may be utilized depending onthe desired attributes and network topology in use.

As shown in FIG. 4A, a first embodiment of the architecture comprises anetwork portion 402 of the caching controller (CC) 208, whicheffectively functions as a supervisory process, and is in logicalcommunication with the GSRM and VoD server 105, and a cache contentdatabase 406, as well as other network equipment and processes (notshown) in order to effectuate the content caching methods and policiesas previously described. For example, in one variant, the CC networkportion 402 is in direct or indirect communication with the GSRM/VoDserver (FIG. 2-2 a) in order to implement caching and transformationpolicies. The aforementioned network portion 402 may for example becombined with other network management entities (including the GSRM), ormay be stand-alone in nature.

As shown in FIG. 4A, not all “subnetworks” in the network need beincluded within the purview of the CC network portion 402; rather, themethodologies previously described may be implemented on aper-subnetwork (or per-node) basis if desired, although clearly theentire network can be included as well.

It is noted that in the embodiment of FIG. 4A, no dedicated clientprocesses or portions (e.g., CPE software) are used; the CC networkportion 402 analyzes data it obtains from the database 406 (or othersuch sources), such as the current directory of cached content versionsand their attributes, available remaining cache storage space, etc., inorder to implement its content caching policies. For instance, the CCnetwork portion 402 may access the database 406 in order to determine aCPE or client device profile (including potentially codec capabilities,bitrate requirements, DRM, etc.) for each CPE 106 of interest. Aspreviously described, the CC portion 402 can also optionally accesshistorical tuning or other data so as to implement a predictive or“look-ahead” approach, both in terms of what a given subscriber (orgroup of subscribers) may request in terms of content elements, as wellas future projected bandwidth demands and constraints (e.g., as afunction of time of day, day of the year, and so forth).

As shown in FIG. 4B, a second embodiment of the software architecturecomprises a plurality of CC network portions 402 a, 402 b, in thisexample disposed at the headend 150 and one or more hubs of the network,respectively. The various network portions 402 a, 402 b may also be inlogical communication with one another (or at least the hub portions 402b with the headend portion 402 a) as shown, thereby allowing for sharingof information. The aforementioned database comprises a plurality oflocal databases 406 b, as well as a headend database 406 a. These localdatabases 406 b provide local (e.g., hub level) cache directoryfunctions, etc., while the headend database 406 a operates generally asin the embodiment of FIG. 4A. Use of hub network portions 402 b asillustrated also allows for a finer level of control; i.e., each hubprocess 402 b can in one variant control content caching for a local VoDor other application server (not shown) in a substantially autonomousfashion from other hubs if desired. This is to be distinguished from theembodiment of FIG. 4A, wherein the hubs have no innate “intelligence” oftheir own and are not involved in implementing the caching methodologiespreviously described.

Moreover, in the event of a failure or problem with the headend CCportion 402 a, the individual hub portions 402 b can continue to operate(and optionally communicate with one another directly), therebyproviding a degree of fault tolerance and redundancy. To this extent, itwill be recognized that another variant of the invention utilizes onlythe hub portions 402 b (i.e., without the headend portion 402 a) in thisfashion, with either local individual databases 406 b as shown, orlogical connection directly to the “master” headend database 406 a (notshown).

As shown in FIG. 4C, yet another embodiment of the software architectureof the invention comprises a headend CC portion or process 402 a inlogical communication with client (e.g., CPE) portions 404 disposed onall or a subset of the CPE within the network. Such subsets may beorganized based on subnetwork/node as shown, or using another scheme.These client portions 404 act as remote proxies for the headend CCprocess 402 a, allowing the MSO to control at least aspects of theoperation of the CPE 106 having such client portions 404, includingnotably the collection of CPE configuration information, as well ashistorical data and other useful information from the CPE. This approachhas the advantage that the MSO can gather much more accurate andrelevant information about an individual CPE, including the operationthereof over time. For example, the headend CC process 402 a canperiodically poll the client portions to determine operational status,what channel is currently being tuned to, recent errors that have beenlogged (e.g., inability to play a certain format of content, resourcecontention, etc.), and even invoke corrective action if desired. Forinstance, such corrective action might constitute download of a newcodec or driver, and/or destruction of an existing application on theCPE. Modifications or upgrades to the middleware or monitor applicationcan also be performed based on data gleaned from particular CPE. Theclient portion 404 can also be used to generate notifications,interactive displays or queries on the user's display device or otheroutput device. Hence, the optional client portion 404 of FIG. 4Cprovides the MSO with a “point of presence” within each CPE as well.

Referring now to FIG. 4D, yet another embodiment of the softwarearchitecture is disclosed, wherein both client portions 404 andheadend/hub network portions 402 a, 402 b (and databases 406 a. 406 b)are utilized. This hybrid approach provides essentially all of thebenefits of the embodiments of FIGS. 4B and 4C previously described, yetat the price of somewhat greater complexity.

Network Device—

Referring now to FIG. 5, one embodiment of an improved network (e.g.,control server) device with caching controller (CC) capability accordingto the present invention is described. As shown in FIG. 5, the device501 generally comprises and OpenCable-compliant VoD server or controllermodule adapted for use at the headend 150 (see FIG. 1A), although theserver may comprise other types of devices (e.g., BSA hub or applicationservers, GSRM or other supervisory processes, etc.) within the networkas previously described.

The device 501 comprises a digital processor(s) 504, storage device 506,and a plurality of interfaces 507 for use with other network apparatusthat may include GSRM functions, RF combiners, IP routers and otherpacket network devices, network management and provisioning systems,local PCs, etc. Other components which may be utilized within thenetwork device 501 include amplifiers, board level electroniccomponents, as well as media processors and other specialized SoC orASIC devices. Support for various processing layers and protocols (e.g.,LSCP, RTSP, 802.3, DOCSIS MAC, OOB channels, DHCP, SNMP, H.323/RTP/RTCP,VoIP, SIP, etc.) may also be provided as required, such as in support ofdata and “rules” interchange between the network device 501 and the GSRMor cached content database 406. The CC process software (e.g., thenetwork portion 402 a of FIGS. 4A-4D) is also disposed to run on theserver module 501, and can be configured to provide a functionalinterface with the GSRM, and other headend and/or client processes 402a, 404 (where used), or other interposed or remote entities. Thesecomponents and functionalities are well known to those of ordinary skillin the cable and embedded system fields, and accordingly not describedfurther herein.

The device 501 of FIG. 5 may take any number of physical forms,comprising for example one of a plurality of discrete modules or cardswithin a larger network VoD server device of the type well known in theart. The server may also comprise firmware, either alone or incombination with other hardware/software components such as thosepreviously described (e.g., disposed in the aforementioned edge device).Alternatively, the device 501 may be a stand-alone device or moduledisposed at the headend or other site, and may even include its own RFfront end (e.g., modulators, encryptors, etc.) or optical interface soas to interface directly with various portions of the HFC network 101.Numerous other configurations may be used. The device 501 may also beintegrated with other types of components (such as the GSRM, database406, transformation devices 206, encoders/decoders, etc.) and formfactors if desired.

It can also be appreciated that the methods of the present invention maybe practiced using any configuration or combination of hardware,firmware, or software, and may be disposed within one or any number ofdifferent physical or logical entities. For example, the cachingcontroller 208 functionality described above may take the form of one ormore computer programs (e.g., the network and client processes, 402,404). Alternatively, such computer programs may have one or morecomponents distributed across various hardware environments at the sameor different locations, such as where the network process 402 isdistributed across multiple platforms at the headend 150 and one or morehub sites as shown in FIGS. 4B and 4D.

As yet another example, portions of the functionality may be rendered asa dedicated or application specific IC having code running thereon.Myriad different configurations for practicing the invention will berecognized by those of ordinary skill in the network arts provided thepresent disclosure.

CPE—

FIG. 6 illustrates an exemplary embodiment of the improved CPE 106according to the present invention. As shown in the simplified diagramof FIG. 6, the device 106 generally comprises and OpenCable(OCAP)-compliant embedded system having an RF front end 602 (includingtuner and demodulator/decryptors) for interface with the HFC network 101of FIGS. 1-1C, digital processor(s) 604, storage device 606, and aplurality of interfaces 608 (e.g., video/audio interfaces, IEEE-1394“Firewire”, USB, serial/parallel ports, etc.) for interface with otherend-user apparatus such as televisions, personal electronics, computers,WiFi or other network hubs/routers, etc. Other components which may beutilized within the device (deleted from FIG. 6 for simplicity) variousprocessing layers (e.g., DOCSIS MAC or DAVIC OOB channel, MPEG, etc.) aswell as media processors and other specialized SoC or ASIC devices. TheCPE 106 may also comprise an integrated HD decoder, thereby relievingany connected monitors or other devices from the requirement of havingsuch a decoder. These additional components and functionality are wellknown to those of ordinary skill in the cable and embedded systemfields, and accordingly not described further herein.

The CPE 106 of FIG. 6 is also provided with an OCAP 1.0-compliantapplication and Java-based middleware which, inter alia, manages theoperation of the device and applications running thereon (including theclient process 404 where used). It will be recognized by those ofordinary skill that myriad different device and software architecturesmay be used consistent with the tuning functions of the presentinvention, the device of FIG. 6 being merely exemplary. For example,different middleware (e.g., MHP, ARIB, or ACAP) may be used in place ofthe OCAP middleware of the illustrated embodiment.

The exemplary CPE 106 further comprises a conventional “Watch TV”application or the like, which services those program or user channelsavailable over the network. The Watch TV application, residing inmemory, provides such functions as channel navigation control, channelselection in response to a channel change event, etc. In one embodiment,the Watch TV (or EPG) application further comprises all necessaryfunctionality need to support the client process 404.

In another embodiment, the CPE 106 comprises a converged premises device(CPD), such as for example that described in co-owned U.S. patentapplication Ser. No. 11/378,129 filed Mar. 16, 2006 and entitled“METHODS AND APPARATUS FOR CENTRALIZED CONTENT AND DATA DELIVERY”, whichis patented as U.S. Pat. No. 8,347,341 on Jan. 1, 2013, and incorporatedherein by reference in its entirety.

Moreover, the foregoing embodiments of the CPE 106 may utilize anynumber of other methods and apparatus in conjunction with thefunctionality previously described herein in order to further extend itscapabilities. See, e.g., co-owned U.S. patent application Ser. No.10/723,959 filed Nov. 24, 2003 entitled “METHODS AND APPARATUS FORHARDWARE REGISTRATION IN A NETWORK DEVICE”, patented as U.S. Pat. No.8,302,111 on Oct. 30, 2012; co-owned and co-pending U.S. patentapplication Ser. No. 10/773,664 filed Feb. 6, 2004 entitled “METHODS ANDAPPARATUS FOR DISPLAY ELEMENT MANAGEMENT IN AN INFORMATION NETWORK”, andco-owned U.S. patent application Ser. No. 10/782,680 filed Feb. 18, 2004entitled “MEDIA EXTENSION APPARATUS AND METHODS FOR USE IN ANINFORMATION NETWORK”, patented as U.S. Pat. No. 8,078,669 on Dec. 13,2011, and each of the foregoing incorporated herein by reference in itsentirety. Myriad other combinations and variations of the CPE 106 willalso be recognized by those of ordinary skill given the presentdisclosure.

It is noted that while a more traditional CPE 106 is described abovewith respect to the exemplary embodiment of FIG. 6, the CPE (and anyclient devices associated with the subscriber's premises or domain) maytake on any number of different forms. For instance, in one variant, apersonal computer (PC) or laptop of the type well known in the art actsas the “CPE” 106, including initiating requests for contentdownload/delivery over a cable modem (e.g., DOCSIS) connection. An IP TVenabled device, for example, may request streaming of a content elementencoded according to a prescribed format (e.g., RealVideo 10) and aprescribed DRM domain (e.g., WMDRM).

Similarly, a handheld portable device such as the exemplary AppleiPhone™ may interface with the network 101 via its indigenous WiFicapability (e.g., with a PC or other WiFi) gateway device that iscoupled to the network so as to download video content meeting itscapabilities. For instance, the aforementioned iPhone device currentlymay include support for inter alia: (i) H.264 video, up to 1.5 Mbps, 640by 480 pixels, 30 frames per second, Low-Complexity version of the H.264Baseline Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audioin .m4v, .mp4, and .mov file formats; (ii) MPEG-4 video, up to 2.5 Mbps,640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LCaudio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov fileformats, and so forth. Hence, information regarding these capabilitiesmay be sent from the portable device to the CC 208 (indirectly) with therequest for the content element, discovered by mechanisms such as thosedescribed with respect to FIG. 3D herein, etc.

In another variant, a cellular telephone or smartphone may be used torequest delivery of a VOD session over a cellular network and gateway orportal between the MSO network and the cellular service provider network(e.g., a UMTS, 3GPP, GSM, PCS/DCS, etc. network). See, e.g., the methodsand apparatus described in co-owned and co-pending U.S. patentapplication Ser. No. 11/258,229 filed Oct. 24, 2005 entitled “METHOD ANDAPPARATUS FOR ON-DEMAND CONTENT TRANSMISSION AND CONTROL OVER NETWORKS”which is incorporated herein by reference in its entirety.

Myriad other types of client devices and CPE may be used consistent withthe present invention, the foregoing being merely illustrative of thebroader principles.

It will also be appreciated that the caching and de-cachingmethodologies and apparatus described herein may be readily adapted toother delivery paradigms where “stored” content is used. For example,within even a broadcast network, advertising and/or promotional contentmay be stored for subsequent use; e.g., splicing into a broadcastprogram stream such as that delivered over a traditional or broadcastswitched architecture (BSA) network. Clearly, intelligent caching ofsuch advertisements or promotions may be beneficial from the standpointthat caching space for such content is limited, andtranscoding/transrating/transcryption of this content may be required aswell, based on the device making the content request. The term “request”in this context may also refer to requests from a supervisory or controlprocess (such as the Advertising and Promotional Content SelectionModule (APCSM) described in co-owned and co-pending U.S. patentapplication Ser. No. 12/284,757 filed on Sep. 24, 2008, which claimspriority to U.S. Provisional Patent Application Ser. No. 60/995,655filed on Sep. 26, 2007 entitled “METHODS AND APPARATUS FOR USER-BASEDTARGETED CONTENT DELIVERY”, and which is incorporated herein byreference in its entirety). For example, the aforementioned APCSM mayrequest a certain advertisement (based on e.g., its metadata) in aparticular form for insertion into a program stream. If theadvertisement is cached in the proper format, it may be servedimmediately. If not, it must be transformed from another format.Multiple requests for the same advertisement (albeit in differentformats) may exist, such as where the advertisement is being insertedinto multiple locations on different channels over the course of a dayor evening.

Operational/Business Methods and “Rules” Engine—

In another aspect of the invention, the aforementioned process 402 ofthe CC 208 (e.g., rendered as one or more computer programs) optionallyincludes an operations and/or business rules engine. This enginecomprises, in an exemplary embodiment, a series of software routinesrunning on the network device 501 of FIG. 5 or other associatedhardware/firmware environment that are adapted to control the operationof the content caching algorithms previously described. These rules mayalso be fully integrated within the CC process 402 itself, andcontrolled via e.g., a GUI on a PC connected to the network device 501at the headend or a remote site. In effect, the rules engine comprises asupervisory entity which monitors and selectively controls, via the CCprocess 402 (and CPE process 404 if used), the content caching functionsat a higher level, so as to implement desired operational or businessrules.

The rules engine can be considered an overlay of sorts to the algorithmsof the CC 402 previously described. For example, the CC process 402 mayinvoke certain operational protocols or decisions based on data receivedfrom the database 406 and optionally the CPE 106 (e.g., presence ofcached versions within the storage volume, historical request oractivity data, CPE configuration, logged errors, etc.), as well asnetwork operational or historical data, demographic data, geographicdata, etc. However, these caching decisions may not always be compatiblewith higher-level business or operational goals, such as maximizingprofit on a network-wide basis (or after consideration of other factorsnot input to the CC caching algorithms, such as bandwidth availability,revenues from various delivery options, taxes, maintenance or repaircosts, additional equipment leasing or use costs, subscription levelconsiderations, etc.), or system reliability and/or flexibility.Moreover, the CC may be operating on a per-CPE or per-request basis(i.e., evaluating each individual request effectively in isolation, andgenerating a caching or de-caching decision or recommendation withoutconsidering larger patterns or decisions being made in the service groupor network as a whole).

Hence, when imposed, the business/operational rules can be used todynamically (or manually) control the operation of the CC process 402(and client process 404 if used), in conjunction with the operational“recommendations” generated by the CC 402 as part of its content cachingand de-caching functions previously described.

For example, one rule implemented by the rules engine may compriseconsideration of revenue associated with various options. Contentproviders (e.g., studios, networks, etc.) might pay a premium or provideother incentives to the MSO to have particular content versionsprioritized over others within the caching/de-caching logic. Suchprioritization may be effected via, e.g., the condition codes previouslydescribed herein. For example, where a caching evaluation is performedbased on a received request, the MSO may program its rules engine toselect the more lucrative of the content versions (i.e., the one forwhich they receive greater payment or other consideration for using) ifany. This may even be to the detriment of efficiency; i.e., it may bemore efficient from a transformation asset (e.g., transcoder) or cachestorage space perspective to choose a first version of a requestedcontent element for caching, yet more lucrative to actually cache asecond version (due to remuneration received by the MSO for doing so).

Similarly, a more incremental approach can be applied, such as wherevarious content versions are “graded” based on profit/revenue and/oroperational considerations (i.e., those which earn most and/or givehighest user satisfaction, etc. receive a higher grade), and the cachingdecisions made at least to some degree based on such grade(s).

In a further variant, the MSO or network operator acceptingconsideration for offering a greater variety of versions of a givencontent element within the aforementioned caching architecture. Aspreviously discussed, cache space is not unlimited, and hence the MSOmust often make decisions relating to de-caching content. These decisionprocesses may be impacted or skewed by the fact that certain content hasa higher revenue or profit associated therewith. For example, a contentprovider (e.g., studio) may pay the MSO to maintain many differentversions (i.e., different encoding, bitrate, encryption, etc.) cached soas to serve a broader variety of devices than might otherwise be served.Consider, for example, the exemplary Apple iPhone previously discussed,wherein Apple Inc. (or its agent) might pay an MSO to offer and maintainone or more versions of every content element offered that areparticularly compatible or adapted for the iPhone (e.g., in terms ofdisplay resolution, bitrate, etc.), thereby ostensibly increasing iPhoneuser satisfaction by making content more readily available to suchusers.

In another embodiment, the rules engine considers any relativedifference in effort or difficulty associated with selecting specificones of the various caching options being evaluated by the CC 208; e.g.,processing overhead, latency, detrimental effects or detractions fromother attributes such as reduced bandwidth, storage space, increasedcost (e.g., RTA costs, etc.), as part of the caching or de-cachingdecision or recommendation process. For example, if use of an HD-encodedvariant consumes significantly more cache storage space than an SDvariant of the same program, and hence precludes or reduces theflexibility or options in caching of other content, then this could beconsidered or weighed in the decision process. Use of the HD-encodedvariant may statistically be more popular (and hence more likely to beused), but the detriments of caching the HD version may outweigh thebenefits relating to statistical or anecdotal likelihood.

In another variant, methods and apparatus for optimizing networkbandwidth utilization by delivering to users only the minimum number ofprograms required by service provider policies are employed inconjunction with the content caching policies described herein. See,e.g., the exemplary apparatus and method set forth in co-owned U.S.patent application Ser. No. 11/881,034 filed Jul. 24, 2007 entitled“METHODS AND APPARATUS FOR FORMAT SELECTION FOR NETWORK OPTIMIZATION”,patented as U.S. Pat. No. 7,770,200 on Aug. 3, 2010, and which isincorporated by reference herein in its entirety. These methods andapparatus are useful in, e.g., minimizing bandwidth consumption whilealso maximizing subscriber satisfaction and service level (e.g., videoand/or audio quality), especially when programming consumption changesdrastically. In one exemplary embodiment, a “forced delivery” approachis employed, wherein a certain type or version of content is selectedand delivered. For example, a given program may be available in both astandard definition (SD) format and high definition (HD) format. Intimes of constrained bandwidth, the SD version of a program may bedelivered when an HD program is requested. If the user's CPE hasupconversion capability, the user may still advantageously experience“HD-quality” video, even though the CPE input has been switched to SD.In other embodiments, up-rating or down-rating of one or more programstreams (i.e., changing the bitrate up or down) can be used totemporarily or even indefinitely accommodate periods of increased orreduced network capacity, respectively. This “trans-rating” may beaccomplished dynamically and according to any number of differentimplementation schemes.

As another example, the failure of a network component, or loss of acontent source, might render certain options unachievable (or at leastundesirable due to factors such as high cost burden, high deliverylatency, poor video quality, etc.). Hence, the rules engine can in suchcases be used to mask the affected options or inputs to the CC algorithmduring the affected periods of time.

It will also be appreciated that the decisions generated by the CCcaching and/or de-caching analyses can be manually or semi-manuallyutilized by network operators, such as in the form of a recommendationrather than a hard and fast decision point. For instance, the CC 208 maypresent a recommended course of action to a human operator (e.g., via aGUI on a PC communicating with the CC network process 402), therebyletting the operator decide whether to implement it. This variant of theinvention allows for the intangible but often important “gut feeling” orintrinsic knowledge of the operator to be factored into the decisionprocess. The operator may also be able to identify trends or patterns innetwork operation that the CC 208 or rules engine cannot, such as thetopical popularity of a given program, in effect allowing the operatorto override the CC's logic when his/her knowledge or intuition says thata different course should be followed.

Enforcement of the foregoing business or operational rules may beexecuted by servers or other devices separately for each service (e.g.BSA or VoD) or centrally via the controlling actions of a master CC 208,GSRM (Session and Resource Manager) or other network agent.

It will be recognized that while certain aspects of the invention aredescribed in terms of a specific sequence of steps of a method, thesedescriptions are only illustrative of the broader methods of theinvention, and may be modified as required by the particularapplication. Certain steps may be rendered unnecessary or optional undercertain circumstances. Additionally, certain steps or functionality maybe added to the disclosed embodiments, or the order of performance oftwo or more steps permuted. All such variations are considered to beencompassed within the invention disclosed and claimed herein.

While the above detailed description has shown, described, and pointedout novel features of the invention as applied to various embodiments,it will be understood that various omissions, substitutions, and changesin the form and details of the device or process illustrated may be madeby those skilled in the art without departing from the invention. Thisdescription is in no way meant to be limiting, but rather should betaken as illustrative of the general principles of the invention. Thescope of the invention should be determined with reference to theclaims.

APPENDIX I Exemplary GSRM to Transcoder/Transrater Protocol © Copyright2007 Time Warner Cable, Inc. All Rights Reserved Session Create

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header> <msg:TCRSessionCreateversion=″1.0″> <to> transcoder/rater ID </to> <from> gsrm ID </from></msg:TCRSessionCreate> </s:Header> <s:Body> <sessionId> unique sessionId </sessionId> <inputIP> source IP </inputIP> <inputPort> source UDPPort </inputPort> <inputProg> input Program Number </inputProg><inputSrcId> input Source ID </inputSrcId> <outputIP> destination IP</outputIP> <outputPort> destination UDP Port </outputPort> <outputTSID>stream Transport ID </outputTSID> <sessionRate> session bit-rate</sessionRate> <transGOP> output GOP size </transGOP> <transVid> outputvideo CODEC </transVid> <transAud> output audio CODEC </transAud><transHoriz> output horizontal res </transHoriz> <transVert> outputvertical res </transVert> <transRate> output bit-rate </transRate><transMeter> output CBR/VBR </transMeter> <transScan> output prog/inter</transScan> <transTrans> output transport pack </transTrans> </s:Body></s:Envelope>transcoder/transrater ID: ID represents a unique identification for thetranscoder/transrater receiving the session create messagegsrm ID: ID represents a unique identification for the GSRM sending thesession create messagecreate session: indicates a create session requestunique session Id: provides a unique identification for the sessionbeing created, provides a reference for queries and deletessource IP: represents source IP address for the incoming stream, thestream arriving from the source will be targeted for this IP addresssource UDP Port: represents source UDP Port for the incoming stream, thestream arriving from the source will be targeted for this Portinput Program Number: indicates the input stream MPEG program numberdestination IP: represents the destination IP (or next hop IP) for theoutgoing streamdestination UDP Port: represents destination UDP Port (or next hop Port)for the outgoing streamstream Transport ID: indicates the Transport Stream ID for the outgoingstreamsession bit-rate: indicates the bit-rate of session being created forthe incoming video stream (if known)output GOP size: indicates the GOP size (I-frame/IDR interval) ofoutputted video streamoutput video CODEC: indicates the video CODEC for the output videostream, valid settings are as follows:

-   -   Pass-through (no transcode)    -   MPEG-2    -   AVC-H.264    -   VC-1        output audio CODEC: indicates the audio CODEC for the output        audio stream. In the event of multiple audio streams, the        following settings should be applied to all. The valid settings        are as follows:    -   Pass-through (no transcode)    -   MP3 (mpeg-1 layer 3)    -   MPEG-2    -   AC3    -   AC3+    -   AAC    -   AAC+        output horizontal resolution: indicates the horizontal        resolution of the output video stream        output vertical resolution: indicates the vertical resolution of        the output video stream        output stream bit-rate: indicates the overall bit rate of the        transport stream, in the case of VBR indicates the cap bit-rate        output video bit-rate: indicates the allowable bit-rate of the        video stream, in the case of VBR indicates the cap bit-rate        output audio bit-rate: indicates the allowable bit-rate of the        audio stream(s), in the case of VBR indicates the cap bit-rate        output CBR/VBR: indicates whether the transport video stream is        to be encoded as constant bit-rate (CBR) or variable bit-rate        (VBR)        output progressive/interlaced: indicates whether the frames        should be encoded for interlaced or progressive (non-interlaced)        output.        output transport packet type: indicates the of transport packet        type (i.e. “wrapper”) to be used for encapsulating the        elementary streams. The valid settings are as follows:    -   MPEG-2 Transport Stream    -   RTP Transport    -   3GP Transport

Session Create Confirm

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header><msg:TCRSessionCreateConfirm version=″1.0″> <to> gsrm ID </to> <from>transcoder/rater ID </from> </msg:TCRSessionCreateConfirm> </s:Header><s:Body> <sessionId> unique session Id </sessionId> <errorMsg> errormessages </errorMsg> </s:Body> </s:Envelope>gsrm ID: ID represents a unique identification for the GSRM that sentthe session create messagetranscoder/rater ID: ID represents a unique identification for thetranscoder/transrater that received the session create messageconfirm create: indicates a confirmation for the create session request(whether successful or not)unique session Id: provides a unique identification for the sessionbeing created, provides a reference for queries and deleteserror messages: in the event of an error in the session create, thenetwork encrypter can return an error message based on pre-defined errorcodes (see Appendix 1). In addition, the NE can send a more verbosemessage based on the log level setting to help with assist with errordetermination.

Session Query

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header> <msg:TCRSessionQueryversion=″1.0″> <to> transcoder/rater ID </to> <from> gsrm ID </from></msg:TCRessionQuery> </s:Header> <s:Body> <sessionId> unique session Id</sessionId> </s:Body> </s:Envelope>transcoder/rater ID: ID represents a unique identification for thetranscoder/transrater receiving the session create messagegsrm ID: ID represents a unique identification for the GSRM sending thesession create messagequery session: indicates a request for a query on the sessionunique session Id: provides a unique identification for the sessioncreated; provides a reference for queries and deletes

Session Query Confirm

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header><msg:TCRSessionQueryConfirm version=″1.0″> <to> gsrm ID </to> <from>transcoder/rater ID </from> </msg:TCRSessionQueryConfirm> </s:Header><s:Body> <sessionId> unique session Id </sessionId> <inputIP> source IP</inputIP> <inputPort> source UDP Port </inputPort> <inputProg> inputProgram Number </inputProg> <inputSrcId> input Source ID </inputSrcId><outputIP> destination IP </outputIP> <outputPort> destination UDP Port</outputPort> <outputTSID> stream Transport ID </outputTSID><sessionRate> session bit-rate </sessionRate> <transGOP> output GOP size</transGOP> <transVid> output video CODEC </transVid> <transAud> outputaudio CODEC </transAud> <transHoriz> output horizontal res </transHoriz><transVert> output vertical res </transVert> <transRate> output bit-rate</transRate> <transMeter> output CBR/VBR </transMeter> <transScan>output prog/inter </transScan> <transTrans> output transport pack</transTrans> <errorMsg> error messages </errorMsg> </s:Body></s:Envelope>

Session Delete

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header> <msg:TCRSessionDeleteversion=″1.0″> <to> transcoder/rater ID </to> <from> gsrm ID </from></msg:TCRSessionDelete> </s:Header> <s:Body> <sessionId> unique sessionId </sessionId> </s:Body> </s:Envelope>

Session Delete Confirm

Body <s:Envelope xmlns:s=”twc-ceni”> <s:Header><msg:TCRSessionDeleteConfirm version=″1.0″> <to> gsrm ID </to> <from>transcoder/rater ID </from> </msg:TCRSessionDeleteConfirm> </s:Header><s:Body> <sessionId> unique session Id </sessionId> <errorMsg> errormessages </errorMsg> </s:Body> </s:Envelope>

APPENDIX II Exemplary Session Setup Message Definitions © Copyright 2007Time Warner Cable, Inc. All Rights Reserved ClientSessionSetupRequest—

An extension to this message is required to provide the capabilities ofthe STB:

-   -   1) Video Decoding Types    -   2) Audio Decoding Types    -   3) Network Transport Types    -   4) Conditional Access Types    -   5) Network Interface Types    -   6) Video Decoder Parameters, including:    -   7) Resolution    -   8) Frame Rate    -   9) Scan Type        The following table outlines the additional syntax to the        ClientSessionSetupRequest message.

TABLE II-1 Exemplary DSM-CC U-N ClientSessionSetUpRequest message FieldName Length (Bytes) ClientSessionSetUpRequest( ) {    dsmccMessageHeader( )     sessionId     reserved 10     clientId  2    serverId 20     userData( 20         uuData(            privateData( )             clientAttributes( ) Variable        ) 10     ) }The sessionId is used to identify a session throughout its life cycle.If the Network configuration indicates that the User which is theoriginator of the command sequence is responsible for generating thesessionId, this field is generated by the Client. If the Networkconfiguration indicates that the Network is responsible for generatingthe sessionId, this field is set to all 0's and the Network shall assignthe sessionId in the ClientSessionSetUpConfirm message. Both the Networkand the Client use the identical sessionId in all messages which referto this session.The clientId field is set by the Client and contains a value whichuniquely identifies the Client within the domain of the Network.The serverId field is set by the Client and contains a value whichuniquely identifies the Server with the Client is attempting toestablish a session.The UserData( ) structure contains the uuData which is defined by theUser-To-User portion of this specification and privateData.

TABLE II-2 Exemplary UUData format Syntax Data Type UUData {   ProtocolID unsigned integer8    Version unsigned integer8   ServiceGateway character[16]    ServiceGatewayDataLength unsignedinteger32    for (ServiceGatewayDataLength) {       Servicecharacter[16]       ServiceDataLength unsigned integer32          for(ServiceDataLength) {             ServiceData byte[ServiceDataLength]         }       }    }   ClientAttributesDataLength unsigned integer8  for (ClientAttributesDataLength){      clientAttributesbyte[ClientAttributesDataLength]   } }

Pegasus SSP messages are sent to the SRM and include the NSAP address ofan ISA Session Gateway. In legacy implementations of the SSP, theSession Gateway was the end point of SSP messages and was usuallyincluded in the application server.

clientAtttributes( )—Resource descriptor containing the followingattributes:

-   -   1) VideoDecodeType—List of Video CODECs supported by device        (e.g. MPEG2, AVC, VC-1)    -   2) AudioDecodeType—List of Audio CODECs supported by device        (e.g. AC3, AC3+, AAC+, MP2, MP3, etc)    -   3) TransportType—Indicates the type of video transport to use        for video/audio streams (e.g. MPEG-2 TS, RTP, etc)    -   4) ConditionalAccessType—List of Conditional Access technologies        supported by device (e.g. PowerKEY, MediaCipher, NDS, etc)    -   5) NetworkInterfaceType—List of Network Interfaces supported for        receiving video stream (e.g. QAM, 10/100 Ethernet, CDMA, GSM,        etc)    -   6) PictureResolution—Max picture resolution that device can        display    -   7) FrameRate—List of the max Frame Rates supported by device    -   8) VideoScanType—List of scan types supported by device (e.g.        Interlaced or Progressive)        The ResourceDescriptor fields are assigned by the Client. The        number and type of resource descriptors that are passed depend        on the User application and the type of service being requested.        The ClientCapabilities resource descriptor is originated by the        Client to indicate to the Network the video/audio stream        decoding, conditional access (CA), network interface and video        resolution capabilities of the Client. When the Network receives        this resource in a ClientSessionSetupRequest message from the        Client, then the Network may utilize this date to determine the        appropriate attributes of the stream to send toward the client.        The following table defines the format of the ClientCapabilities        descriptor.

TABLE II-3 ClientCapabilities data fields Field Name Encoding VariableLength (Bits) VideoDecodeType S No 12 AudioDecodeType S No 12ConditionalAccessType S No 12 NetworkInterfaceType S No 12 TransportProtocol Type S No 6 VideoResolution S No 10 Aspect Ratio S No 3FrameRate S No 4 VideoScanType S No 2 Reserved S No 7 Total (Bits) 80Total (Bytes) 10The VideoDecodeType field is used to indicate the ability of a givenclient to process a particular video stream type (e.g. MPEG2, H.264,etc). The Network is responsible for using this value to establish,manage and route a stream of the proper encoding to the client.

-   -   (000000000000) 0=Reserved    -   (000000000001) 1=MPEG-2 (Default)    -   (000000000010) 2=AVC/H.264    -   (000000000100) 4=VC-1    -   (000000001000) 8=Real Helix    -   (000000010000) 16=Flash/H.263    -   (000000100000) 32=Not Defined    -   (000001000000) 64=Not Defined    -   (000010000000) 128=Not Defined    -   . . .    -   (1) 2048=Reserved        The AudioDecodeType field is used to indicate the ability of a        given client to process a particular audio stream type (e.g.        AC3, AC3+, AAC, etc). The Network is responsible for using this        value to establish, manage and route a stream of the proper        encoding to the client.    -   (000000000000) 0=Reserved    -   (000000000001) 1=MPEG-2    -   (000000000010) 2=AAC/AAC+    -   (000000000100) 4=AC3/AC3+(Dolby Digital Plus) (Default)    -   (000000001000) 8=Real    -   (000000010000) 16=WMA    -   (000000100000) 32=MP3    -   (000001000000) 64=Reserved    -   (000010000000) 128=Reserved    -   . . .    -   (100000000000) 2048=Reserved        The ConditionalAccessType field is used to indicate the ability        of a given client to process streams encrypted using a        particular type of Conditional Access (e.g. PowerKEY,        MediaCipher, NDS, etc). The Network is responsible for using        this value to establish, manage and route a stream of the proper        encoding to the client.    -   (000000000000) 0=Reserved    -   (000000000001) 1=PowerKEY    -   (000000000010) 2=MediaCiper    -   (000000000100) 4=NDS    -   (000000001000) 8=Reserved    -   (000000010000) 16=Reserved    -   (000000100000) 32=Reserved    -   (000001000000) 64=Reserved    -   (000010000000) 128=Reserved    -   . . .    -   (100000000000) 2048=Reserved        The NetworklnterfaceType field is used to indicate the ability        of a given client to receive video/audio streams via given        network interface/protocol and type (e.g. QAM, DOCSIS, CDMA,        GSM, MOCA, etc). The stream route may be determined on a per        session basis. The Network is responsible for using this value        to establish, manage and route a stream of the proper encoding        to the client.    -   (000000000000) 0=Reserved    -   (000000000001) 1=QAM (Default)    -   (000000000010) 2=DOCSIS    -   (000000000100) 4=Ethernet (10/100/1000)    -   (000000001000) 8=WiFi (802.11x)    -   (000000010000) 16=MOCA    -   (000000100000) 32=CDMA/3G    -   (000001000000) 64=GSM/GPRS    -   (000010000000) 128=Reserved    -   . . .    -   (100000000000) 2048=Reserved        The TransportProtocolType field is a 8-bit mask that is used to        indicate the transport wrapper used for the MPEG streams    -   (00000000) 0=Reserved    -   (00000001) 1=MPEG-2 TS (Default)    -   (00000010) 2=RTP    -   (00000100) 4=3GP    -   (00001000) 8=Reserved    -   . . .    -   (10000000) 128=Reserved        The VideoResolution is a 10-bit unsigned integer field that        indicates the vertical size in units of 8 pixels. Typical range        is 12 to 288. Values 0 and 1023 are reserved. The field is in        units of 8 pixels. For example, 60 means 480 pixels, 90 means        720 pixels and 135 means 1080 pixels. Also possible is 12        meaning 96 pixels (SQCIF), for example, for future        implementation.        The AspectRatio is a 3-bit unsigned integer field    -   (0000) 0=Reserved    -   (0001) 1=4:3 (Default)    -   (0010) 2=16:9    -   (0011) 3=Reserved    -   (0100) 4=Reserved    -   (0101) 5=Reserved    -   (0110) 6=Reserved    -   (0111) 7=Reserved        The FrameRate is a 4-bit unsigned integer field indicates the        frame rate.    -   (0000) 0=Reserved    -   (0001) 1=12 Hz    -   (0010) 2=15 Hz    -   (0011) 3=23.976 Hz    -   (0100) 4=24 Hz    -   (0101) 5=29.97 Hz    -   (0110) 6=30 Hz    -   (0111) 7=59.94 Hz    -   (1000) 8=60 Hz    -   (1001) 9=Reserved    -   . . .    -   (1111) 15=Reserved        The VideoScanType is an 2-bit unsigned integer field shall        indicate the scan type. 1 is progressive, 2 is interlaced.        Values 0 and 3 are reserved.    -   (00) 0=Reserved    -   (01) 1=Progressive    -   (10) 2=Interlaced (Default)    -   (11) 3=Reserved

What is claimed is: 1.-25. (canceled)
 26. A method of operating acontent delivery network having a content storage device and a pluralityof client devices associated therewith, said method comprising:selectively and temporarily storing a plurality of content elementswithin said content storage device; and selectively removing individualones of said plurality of content elements from said content storagedevice when one or more criteria for removal are met, said one or morecriteria for removal relating at least in part to requests for saidindividual ones of said plurality of content elements from saidplurality of client devices.
 27. The method of claim 26, wherein saidone or more criteria for removal comprise a frequency of request forsaid individual ones of said plurality of content elements falling belowa predetermined threshold.
 28. The method of claim 26, wherein saidplurality of client devices each comprises at least one of a pluralityof different decoding and bitrate capabilities, said act of selectivelyand temporarily storing said plurality of content elements being basedat least in part on said plurality of different decoding and bitratecapabilities.
 29. The method of claim 26, wherein said act ofselectively removing comprises removing said individual ones of saidcontent elements according to a priority scheme or hierarchy.
 30. Themethod of claim 26, wherein said act of selectively removing isperformed only when storage space restrictions at said content storagedevice exist which necessitate said act of selectively removing.
 31. Themethod of claim 26, wherein said act of selectively and temporarilystoring comprises storing according to a predicted pattern of behaviorwith respect to individual ones of said plurality of content elements.32. The method of claim 26, wherein said act of selectively andtemporarily storing further comprises storing based at least in part ona popularity of individual ones of said plurality of content elementswith respect to other non-stored content elements which are lesspopular.
 33. The method of claim 26, wherein said one or more criteriafor removal comprise a determination that a number of said requests forsaid individual ones of said content elements is less than that of othercontent elements which are not stored on said content storage device.34. Network server apparatus for use in a content delivery network, saidapparatus comprising: a server configured to: receive a plurality ofvideo content in a first format from a content source; receive aplurality of requests for individual ones of said plurality of videocontent in at least one second format from individual ones of aplurality of users of said content delivery network; and serve at leastone of said individual ones of said plurality of video content in saidat least one second format to said individual ones of said plurality ofusers of said content delivery network; and a controller in operativecommunication with said server, said controller configured to: receiverequests for said individual ones of said plurality of video content insaid at least one second format from said individual ones of saidplurality of users; utilize said received requests to determine apredicted pattern of behavior with respect to said individual ones ofsaid plurality of video content in said at least one second format; anddetermine time periods based at least in part on said predicted patternof behavior with respect to said individual ones of said plurality ofvideo content in said at least one second format, a first one of saidtime periods comprising a time within which said individual ones of saidplurality of video content in said at least one second format arecached, and a second one of said time periods comprising a time withinwhich said individual ones of said plurality of video content in said atleast one second format are not cached, said first and said second onesof said time periods configured not to overlap.
 35. The apparatus ofclaim 34, wherein said server configured to serve said individual onesof said plurality of video content in said at least one second format isconfigured to do so via a delivery thereof from said cache during saidfirst one of said time periods.
 36. The apparatus of claim 34, whereinsaid server configured to serve said individual ones of said pluralityof video content in said at least one second format is configured to doso via a delivery thereof from a storage device during said second oneof said time periods.
 37. The apparatus of claim 34, wherein saidcontroller is further configured to re-encode individual ones of saidplurality of video content in said first format to said at least onesecond format.
 38. The apparatus of claim 34, wherein said controller isfurther configured to update a record based at least in part on saidpredicted pattern of behavior with respect to said individual ones ofsaid plurality of video content in said at least one second format saidrecord configured to indicate said time periods within which saidindividual ones of said plurality of video content in said at least onesecond format are cached or not cached.
 39. A computer-readableapparatus within a content delivery network, said network comprising acontent storage device and at least one client device, said apparatuscomprising a storage medium configured to store a plurality ofinstructions thereon, said plurality of instructions configured to, whenexecuted: selectively and temporarily store a plurality of contentelements within said content storage device; and remove selectedindividual ones of said plurality of content elements from said contentstorage device when one or more criteria for removal are met, said oneor more criteria for removal being based at least in part on one or morerequests for said individual ones of said plurality of content elementsfrom said at least one client device.
 40. The apparatus of claim 39,wherein said removal of said selected individual ones of said pluralityof content elements comprises removal based at least in part on aduration of time since said one or more requests for said individualones of said plurality of content elements was received.
 41. Theapparatus of claim 39, wherein said selective and temporary storage ofsaid plurality of content elements comprises storage based at least inpart on a type of said at least one client device.
 42. The apparatus ofclaim 39, wherein said selective and temporary storage of said pluralityof content elements comprises storage based at least in part onpreferences of a plurality of subscribers associated with respectiveindividual ones of said at least one client device.
 43. The apparatus ofclaim 39, wherein said selective and temporary storage of said pluralityof content elements comprises storage based at least in part on ananticipated popularity level of said plurality of content elements basedon one or more of: a date, a time of day, and/or an event relevant tosaid plurality of content elements.
 44. The apparatus of claim 39,wherein said selective and temporary storage of said plurality ofcontent elements comprises storage based at least in part on anaggregate probability comprising one or more probabilities associatedwith respective one or more parameters of said plurality of contentelements.
 45. The apparatus of claim 44, wherein said one or moreparameters comprise one or more of: a codec type, a bitrate value,and/or an encryption type.